關於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

相關文章
相關標籤/搜索