2012-01-26 4 views
1

私は休止状態を使用しており、私は休止状態を使用してJava側でエンティティを作成しています。 私のDBテーブルの1つに主キーとして複数のカラムがあり、それを処理するために@EmbeddedIdが使用されています。 挿入クエリを作成しようとすると、hibernate @EmbeddedIdの使用方法

は私が必要とする、IDを設定する:

「クラスcom.iu.eblood.model.EventtypeofeventヌルIDの生成:」

私の問題は、私はINSERTクエリを作成するとき、私はこのエラーを取得するということですこのEmbeddedIdためobjejtを作成し、私が作成したときと、このIDを設定するには、 別の問題が登場:

「ターゲット名 『EVENTID私は

』同じSQL文で割り当てのために複数回指定されました」推測する彼は私のEventtypeofeventオブジェクトとEventtypeofeventPKオブジェクト(Embedded Idのために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 

およびその他のクラス:

@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; 
    } 
関連する問題