1

次のようなクラスがあります。

@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 は許可されていません。

配当取引を許可し、手数料取引を許可しないように構成する正しい方法は何ですか?

4

1 に答える 1

0

@JoinTableを使用して、支払ったコミッションと配当コンポーネントに別々のテーブルを設定できます。

于 2012-11-26T05:27:45.343 に答える