2012-01-04 44 views
0

我有一個非常簡單的問題,而且我不確定它是在休眠中的錯誤還是JPA 2.0的問題。Hibernate實體無法確定@Id列上的@ManyToOne映射的類型

我有一個簡單@Entity

@Entity 
public class LegacyClearanceNodeMapping { 
    @Id  
    @ManyToOne 
    @JoinColumn(name="nid") 
    private LegacyNode clearanceNode; 

    @ManyToOne 
    @JoinColumn(name="rentable_nid") 
    private LegacyNode rentableNode; 

    @Column 
    private Integer quality; 

    ..snip.. 

} 

從本質上講,這是一個許多一對多的地圖類,但它有關聯的元數據,所以我不能把它的方式。

當我嘗試啓動Hibernate雖然,我得到的follwoing錯誤:

org.hibernate.MappingException: Could not determine type for: 
com.***.inventory.model.clearance.LegacyNode, at table: LegacyClearanceNodeMapping, for columns: [org.hibernate.mapping.Column(clearanceNode)] 
    at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:292) 
    at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:175) 
    at org.hibernate.cfg.Configuration.iterateGenerators(Configuration.java:743) 
    at org.hibernate.cfg.Configuration.generateDropSchemaScript(Configuration.java:854) 
    at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:128) 
    at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:91) 

我只能懷疑Hibernate不喜歡PK是一個FK,但我無法改變的模式。

任何已知的解決方案?

感謝

+0

它不應該是OneToOne嗎?我的意思是,如果前面的關鍵字也是主鍵,那麼這個實體只能與其父實體有一個關聯,是不是? – 2012-01-04 21:14:12

回答

1

您必須映射爲ID的基本特性,並繪製在同一列一個多對一,並使用@MapsId註解。

相關問題