次のようなクラスがあります。
@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: 列 "COMMISSIONPAID_TRANSACTIONID" に NULL は許可されていません。
配当取引を許可し、手数料取引を許可しないように構成する正しい方法は何ですか?