最近寫的項目是用的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