gpt4 book ai didi

java - "NULL not allowed"有两个 @OneToMany 到同一个表

转载 作者:行者123 更新时间:2023-12-01 04:59:53 25 4
gpt4 key购买 nike

我有一个如下所示的类:

@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 not allowed for column "COMMISSIONPAID_TRANSACTIONID";

配置此选项以允许股息交易但不允许佣金交易的正确方法是什么?

最佳答案

您可以使用 @JoinTable 为您支付的佣金和股息部分创建单独的表格。

关于java - "NULL not allowed"有两个 @OneToMany 到同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com