1
我有一個類,如下所示:「NULL不允許」以兩個@一對多的同一個表
@Entity
public class MarketSettlement extends BaseEntity {
@OneToMany(cascade=CascadeType.ALL)
private Set<FinancialTransaction> commissionPaid;
@Setter @OneToMany(cascade=CascadeType.ALL)
private Set<FinancialTransaction> dividends;
}
所以,市場結算可能產生的股息,並且它可能有佣金支付。
但是,它是有效的結算產生股息,和不是支付任何佣金 - 在這種情況下commissionPaid
收集是空的。
然而,從該生成的表格需要BOTH藏品填充:
+------------------------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------------+------------+------+-----+---------+-------+
| MarketSettlement_id | bigint(20) | NO | PRI | NULL | |
| dividends_transactionId | bigint(20) | NO | UNI | NULL | |
| commissionPaid_transactionId | bigint(20) | NO | PRI | NULL | |
+------------------------------+------------+------+-----+---------+-------+
因此,當我嘗試堅持記錄沒有任何交易,我得到一個DataIntegrtityViolationException:
org.springframework.dao.DataIntegrityViolationException:NULL不允許 列「COMMISSIONPAID_TRANSACTIONID」;
什麼是正確的方式來配置此,允許股息交易,但沒有佣金交易?
您可以使用@JoinTable爲支付的佣金和股息組件分配不同的表格。 – dinukadev
@dinukadev謝謝......這就是我最終做的。介意發佈這個答案,以便我可以接受? –
完成。並且很高興知道我們都同意解決方案:) – dinukadev