2012-01-26 26 views
1

我正在使用hibernate,並且我使用hibernates在java端創建了實體。 我的一個數據庫表有多個列作爲主鍵,而hibernate使用@EmbeddedId來處理它。當我嘗試創建插入查詢時如何使用hibernate @EmbeddedId

我的問題是,當我創建一個插入查詢,我得到這個錯誤:

設置標識,我需要:

「類com.iu.eblood.model.Eventtypeofevent用於生成空ID」創建此EmbeddedId的objejt,當我創建並設置這個ID, 另一個問題出現了:

「目標名稱‘EVENTID

’是在同一個SQL語句中指定不止一次分配」我猜測,T他對錯誤的共鳴是我的Eventtypeofevent對象和EventtypeofeventPK對象(通過hibernate爲EmbeddedId創建的類)實際上顯示相同的屬性。

這裏是我的類:

@Entity 
public class Eventtypeofevent implements Serializable { 

    private static final long serialVersionUID = 1L; 
    private EventtypeofeventPK id; 
    private Timestamp createddate; 
    private Timestamp deleteddate; 
    private String isactive; 
    private Event event; 
    private Eventtype eventtype; 

    public Eventtypeofevent() { 
    } 


    @EmbeddedId 
    public EventtypeofeventPK getId() { 
     return this.id; 
    } 

    public void setId(EventtypeofeventPK id) { 
     this.id = id; 
    } 
....... getter and setter 

和其他類EmbeddedId:

@Embeddable 
public class EventtypeofeventPK implements Serializable { 
    //default serial version id, required for serializable classes. 
    private static final long serialVersionUID = 1L; 
    private long eventid; 
    private int eventtypeid; 
...... getter and setter 

回答

0

我使用@EmbeddedId這個樣子,我不知道,如果它可以幫助:

@EmbeddedId 
@AttributeOverrides({ 
    @AttributeOverride(name = "orgId", column = @Column(name = "ORG_ID", nullable = false,  precision = 12, scale = 0)), 
    @AttributeOverride(name = "configId", column = @Column(name = "CONFIG_ID", nullable = false, precision = 9, scale = 0)) }) 
    public [EmbeddedId Object] getId() { 
    return id; 
    } 
相關問題