关于hibernate 实体没有主键调用save方法报错could not extract ResultSet的解决办法

最近写的项目是用的hibernate,因为是第一次用,也出现了一些问题,网上也没有查到相关的内容。废话也很少说了,下面来看今天碰见的这个问题。html

 

咱们在写项目的时候,常常会用到一些没有主键的关系表,而hibernate呢必须给实体类指定主键。因此咱们在实体类里面加入注解@Id就能够了
java

加入注解后,项目能够正常的启动,可是在调用hibernate的save方法的时候会报一个could not extract ResultSet的错误。mvc

这个错误出现的缘由其实很简单,由于jpa的save方法,在保存后会返回一个实体,由于没有主键的缘由,因此就致使了报了这个错误。this

 

解决这个问题的方法就是,将@Id加到任何一个get方法的上面就好了spa

下面展现一下个人代码hibernate

package com.tlgc.system.mvc.model.projectmanager; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; import javax.persistence.*; @Entity @Table(name = "pm_role") @DynamicInsert(true) @DynamicUpdate(true) public class PmRole implements java.io.Serializable { private static final long serialVersionUID = -7509069780835660418L; private String roleId; private String pmId; private Integer type; @Id @Column(name = "role_id") public String getRoleId() { return roleId; } public void setRoleId(String roleId) { this.roleId = roleId; } @Column(name = "pm_id") public String getPmId() { return pmId; } public void setPmId(String pmId) { this.pmId = pmId; } @Column(name = "type") public Integer getType() { return type; } public void setType(Integer type) { this.type = type; } }

 

原文出处:https://www.cnblogs.com/hupuqi/p/10751795.htmlcode

相关文章
相关标签/搜索