Je travaille dans un projet utilisant Hibernate + JPA. J'ai cette classe entité:@OneToOne relations hibernate question
@Entity
public class CafeUser implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer userId;
@Column
private String userName;
@Column
private String userPassword;
@Column(unique=true)
private String userEmail;
@Column
private String userAddress;
@Column
private String userCountry;
@Column
private String userState;
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTime")
private DateTime userDateOfBirth;
@Column
private String userSex;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="userAccountingDetailsId", referencedColumnName="userAccountingDetailsId")
private AccountingDetails accountingDetails;
@OneToOne(cascade=CascadeType.ALL)
private InvestorProfile investorProfile;
@OneToMany(mappedBy="user")
private Set<UserProfileAnswer> userProfileAnswers;
@OneToMany(cascade=CascadeType.ALL, mappedBy="user")
private Set<MoneyHealth> userMoneyHealths;
@OneToMany(cascade=CascadeType.ALL, mappedBy="user")
private Set<LifePlanning> lifePlannings;
getters-setters
}
Si vous pouvez le voir, le USEREMAIL de champ est déclaré comme unique, et s'il y a un double de l'entité CafeUser dans le DB, il n'insère pas l'entité. MAIS, les champs "investorProfile" et "accountingDetails" sont insérés même s'ils sont associés à un utilisateur ayant un email déjà enregistré dans la base de données.
Qu'est-ce que je fais mal ??
Merci d'avance!
Je persiste à travers l'EntityManager, et oui, je persiste dans la transaction. Dois-je annuler la transaction lorsqu'une exception PersistenceException est interceptée pendant persist()? –