簡體   English   中英

使用JPA創建復合主鍵時如何解決找不到IdClass屬性的問題

[英]How to resolve IdClass Property not found issue when creating composite primary key using JPA

我在創建復合主鍵時遇到問題

我收到org.hibernate.AnnotationException: Property of @IdClass not found this exception。

我的可序列化實現類和模型類如下:

public class MakeCompositeKey implements Serializable {
    private String codeName;
    private int year;

    public MakeCompositeKey() {
    }

    public MakeCompositeKey(String codeName, int year) {
        this.codeName = codeName;
        this.year = year;
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }
}

@Entity

@IdClass(MakeCompositeKey.class)
    
public class Averages {

    @Id
    @Column(name = "code_name")
    private  String CodeName;
    @Id
    private  int year;


    @Column(name = "weighted_average_shs_out")
    private double Weighted_Average_Shs_Out;

    @Column(name = "weighted_average_shs_dil")
    private double Weighted_Average_Shs_Out_Dil;

    @Column(name = "average_receivables")
    private double Average_Receivables;

    @Column(name = "average_payables")
    private double Average_Payables;

    @Column(name = "average_inventory")
    private double Average_Inventory;
    
    //getters and setters 
}

我不明白出了什么問題。 請幫我解決這個問題。

謝謝!

MakeCompositeKey應該用@Embeddable注釋

看看這個: How to map a composition key with JPA and Hibernate?

你在這里有一個錯字,這可能會破壞一切。

public class Averages {
  @Id
  @Column(name = "code_name")
  private String CodeName;  // <----this should be codeName instead of CodeName
  
  //...class implementation
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM