0

我有一個非常簡單的Hibernate的關係,讓我以下異常:冬眠空指針bindManytoManyInverseFk

Unable to configure EntityManagerFactory 
Caused by: java.lang.NullPointerException at org.hibernate.cfg.annotations.CollectionBinder. 
bindManytoManyInverseFk(CollectionBinder.java:1370) 

我無法弄清楚如何使用這個註解映射。

這是我的代碼很簡單,只有2個類和一個Id類。

Profile類

@Entity 
public class Profile { 

    @Id 
    private int profileId; 

    @Column(nullable=false) 
    private String name; 

    @OneToMany(mappedBy="profile") 
    @JoinTable(
     name="ProfileMetrics", 
     joinColumns={@JoinColumn(name="ProfileId")} 
    )  
    private Set<Metrics> metrics = new HashSet<Metrics>(); 

    // Getters & Setters 
} 

度量類別

@Entity 
@IdClass(MetricsPK.class) 
public class Metrics implements Serializable { 

    @Id 
    private Profile profile; 

    @Id 
    private String moduleId; 

    @Id 
    private String metricId; 

    @Column 
    private Integer displayOrder; 

    // Getters & Setters 
} 

ID級別

public class MetricsPK implements Serializable { 

    private int profile; 
    private String moduleId;  
    private String metricId; 

    // Getters & Setters & Hashcode & Equals  
} 

回答

1

的外鍵必須映射兩種方式。

內部資料

@OneToMany(fetch = FetchType.LAZY, mappedBy = "profile") 
private Set<Metrics> metrics = new HashSet<Metrics>(); 

內部指標

@ManyToOne 
@JoinColumn(name = "PROFILE_ID") 
private Profile profile; 
+0

非常感謝納帕 - 我將在明天上午的工作嘗試。很高興現在愛爾蘭剛剛獲得法國歐元的資格! – user1810292

+0

你是對的我補充說,它工作(我也必須添加int @Id自使用JPA 1.0)感謝您的幫助! – user1810292