J'ai la relation suivante avec la personne et la transaction (un pour un dans mon cas). Je veux être en mesure d'enregistrer une personne avec une transaction jointe résultant en deux insertions. Un dans tbl_person et un dans tbl_Transaction. Mais ce qui suit ne génère qu'un insert au lieu de deux. L'un insert est en tbl_Transaction:hibernate un à un mappage des relations, enregistrer seulement insère enfant
`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 (transaction);
Le service.saveTransaction renvoie sans exception mais il insère uniquement la transaction mais pas la personne. Quelqu'un peut-il me dire ce que je fais de mal?
Votre code ne compilerait pas. Publier un exemple minimal complet reproduisant le problème. –