【发布时间】:2017-12-05 02:42:43
【问题描述】:
我与人和交易有以下关系(在我的情况下是一对一的)。我希望能够保存一个附加了事务的人,从而导致两个插入。一个在 tbl_person 中,一个在 tbl_Transaction 中。但以下仅生成一个插入而不是两个。一个插入在 tbl_Transaction 中:
`CREATE TABLE `tbl_person` (
`ID` char(36) NOT NULL,
`TransactionID` int(11) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `TransactionID` (`TransactionID`),
CONSTRAINT `tbl_person_ibfk_1` FOREIGN KEY (`TransactionID`)
REFERENCES `tbl_Transaction` (`TransactionID`)
);
CREATE TABLE `tbl_transaction` (
`TransactionID` int(11) NOT NULL,
PRIMARY KEY (`TransactionID`)
);
@Table(name="tbl_person")
@Entity
@JsonIgnoreProperties(ignoreUnknown = true)
@ToString
@Data
public class Person {
@Id
@GeneratedValue(generator = "hibernate-uuid")
@GenericGenerator(name = "hibernate-uuid", strategy = "uuid2")
@Column(name="ID", nullable = false)
private String ID;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "transactionId")
private Transaction transaction;
}
@Table(name="tbl_transaction")
@Entity
@Data
public class Transaction {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer transactionId;
}
public class Service() {
public void saveTransaction(Transaction transaction) {
Person person = new Person();
person.setTransaction(transaction);
getSessionCurrent().save(person);
}
}
`
service.saveTransaction(交易);
service.saveTransaction 无异常返回,但它只插入事务而不插入人。
谁能告诉我我做错了什么?
【问题讨论】:
-
您的代码无法编译。发布一个完整的最小示例来重现问题。
标签: java hibernate hibernate-mapping sql-insert one-to-one