在我的Hibernate应用程序中,我正在使用创建ValueObject类
@Entity
@Table(name="user")
public class UserVO{
@Id
@Column(name="S_ID")
private String s_id;
@Column(name="FIRSTNAME")
private String firstName;
@Column(name="LASTNAME")
private String lastName;
}
在我的服务课上,我这样写
public void createOrUpdateUser(UserVO userVO) {
userDAO.createOrUpdateUser(userVO);
}
在我的DAO课上,我这样写
private EntityManager entityManager;
public void createOrUpdateUser(UserVO userVO) throws DataAccessException {
entityManager.persist(userVO);
}
现在我打电话给createOrUpdateUser(userVO)但它给错误
Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save()
其实我的数据库我已经为
trigger
表创建了一个user
来为s_id
列生成唯一的ID是他们的触发器问题。请建议我.. 最佳答案
ID列不得为null,无论您在数据库驱动程序中执行什么操作,都只会在插入或任何其他操作之前/之后被触发,但是根据错误,它会在出现任何错误之前给出错误。
设置一些ID值或尝试一些操作
@GeneratedValue(strategy = GenerationType.IDENTITY)