我在這里有這個問題:org.hibernate.id.IdentifierGenerationException:必須在呼叫 save() 之前手動分配此類的 ids ...
我看到了另一個主題,但我無法理解答案,或者它是否與我相同。
這是我的代碼:
@Entity
@Table(name = "USERS")
public class User {
@Id
@Column(name = "loginU")
private String loginU;
private String mailU;
private String pwdU;
public User(String login, String email, String password) {
this.loginU = login;
this.mailU = email;
this.pwdU = password;
}
/**
* Crée un utilisateur.
*/
public User createUser(String login, String email, String password) {
User user = getUserByLogin(login);
if (user == null) {
user = new User(login, email, password);
em.persist(user);
} else {
return null;
}
return user;
}
public User newUser(String login, String email, String password) {
em.getTransaction().begin();
User user = userDAO.createUser(login, email, password);
em.getTransaction().commit();
return user;
}
我不明白為什么 hibernate 需要一個識別符號,因為我用我的 User 建構式給了它一個?
謝謝你閱讀我。
uj5u.com熱心網友回復:
你錯過了 @GeneratedValue
@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
@Column(name = "loginU", nullable = false)
private String loginU;
uj5u.com熱心網友回復:
您可以使用@PrePersist但請確保 loginU 列長度應為 36 個字符
@PrePersist
public void autofill() {
this.setLoginU(UUID.randomUUID().toString());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/347723.html
標籤:休眠
