在我的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 是它们的触发器问题。请建议我。
trigger
user
s_id
ID列不能为null,无论您在数据库驱动程序中执行什么操作,都只会在插入或任何其他操作之前/之后被触发,但是根据错误,它会在出现任何错误之前给出错误。
设置一些ID值或尝试一些操作 @GeneratedValue(strategy = GenerationType.IDENTITY)
@GeneratedValue(strategy = GenerationType.IDENTITY)