關於hibernate 實體沒有主鍵調用save方法報錯could not extract ResultSet的解決辦法


最近寫的項目是用的hibernate,由於是第一次用,也出現了一些問題,網上也沒有查到相關的內容。廢話也不多說了,下面來看今天遇見的這個問題。

 

我們在寫項目的時候,經常會用到一些沒有主鍵的關系表,而hibernate呢必須給實體類指定主鍵。所以我們在實體類里面加入注解@Id就可以了

加入注解后,項目可以正常的啟動,但是在調用hibernate的save方法的時候會報一個could not extract ResultSet的錯誤。

這個錯誤出現的原因其實很簡單,因為jpa的save方法,在保存后會返回一個實體,因為沒有主鍵的原因,所以就導致了報了這個錯誤。

 

解決這個問題的方法就是,將@Id加到任何一個get方法的上面就行了

下面展示一下我的代碼

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;
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM