私は2つのテーブルを持っています.1つはTRANSACTIONと呼ばれるMasterテーブルで、2つ目はこのテーブルがTRANSACTION_RECORDと呼ばれるトランザクションのレコードです.
取引
CREATE TABLE `e3_transaction` (
`transactionid` bigint(20),
`transactiontype` varchar(10),
`transactionstatus` varchar(10),
PRIMARY KEY (`transactionid`)
);
TRANSACTION_RECORD
CREATE TABLE `e3_as2805msg4` (
`transectionid` bigint(20),
`messageType` int(4),
`cardAcceptorName` varchar(40),
`adNational` varchar(1000),
`adPrivate` varchar(1000),
KEY `transectionidFK` (`transectionid`),
CONSTRAINT `transectionidFK` FOREIGN KEY (`transectionid`) REFERENCES `e3_transaction` (`transactionid`)
);
トランザクションとトランザクション レコードの間に 1 対 1 のマッピングがあります。これは、1 つのトランザクションが 1 つのレコードしか持てないことを意味します。いくつかの理由で、このテーブルを個別に保持しています。したがって、私のクラスは次のようになります。
@Entity
@Table(name = "e3_transaction")
public class Transaction {
@Id
@GeneratedValue(generator = "assigned-by-code")
@GenericGenerator(name = "assigned-by-code", strategy = "assigned")
@Column(name = "transactionid", unique = true, nullable = false)
private Long transactionid;
@Column(name = "transactiontype", nullable = false, length = 10)
private String transactiontype;
@Column(name = "transactionstatus", nullable = false, length = 10)
private String transactionstatus;
@oneToOne
private TransactionRecord record;
}
両方のオブジェクトを同時に保持したい。TRANSACTION を永続化する場合、TRANSACTION_RECORD はそのテーブルに永続化する必要があります。これを行う方法はありますか?必要に応じて、テーブル構造を変更できます。必要なのは2つのテーブルだけです。