我有一个如下所示的类:
@Entity
public class MarketSettlement extends BaseEntity {
@OneToMany(cascade=CascadeType.ALL)
private Set<FinancialTransaction> commissionPaid;
@Setter @OneToMany(cascade=CascadeType.ALL)
private Set<FinancialTransaction> dividends;
}
因此,市场结算可能会产生股息,并且可能已支付佣金。
但是,结算产生股息并且不支付任何佣金是有效的 - 在这种情况下,commissionPaid
集合是空的。
但是,由此生成的表需要填充两个集合:
+------------------------------+------------+------+-----+---------+-------+
| 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”;
什么是正确的配置方法,允许股息交易,但不允许佣金交易?