2015-12-26 46 views
0

是有可能配置Hibernate註釋存儲在一個單獨的表中的組件類?休眠部件標註表

看看下面的例子:

@Table(name = "A") 
@Entity 
public class A implements Serializable { 
@Id 
public String id; 

@OneToMany 
@JoinColumn(name="ENTITY_ID", insertable=false, updatable=false) 
@NotFound(action=NotFoundAction.IGNORE) 
private Set<ComponentObj> components; 
.... 
} 

對於成分表...

@Table(name = "C") 
public class ComponentObj implements Serializable { 

@JoinColumn(name="ENTITY_ID") 
public String entity_Id; 

.... 
} 

當我開始上述註釋進行單元測試,我得到以下異常:

Caused by: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: ComponentObj 

我宣佈這兩個類作爲註解的類...

回答

1

我會建議做ComponentObj一個真正的實體,與標識符,並簡單地用一個一對多的關聯。

很可能有分量的colelction,但不是你嘗試的方式。

  • 組件類必須用@Embeddable
  • 來註釋集合必須@ElementCollection
  • 組件來註釋不能有ENTITY_ID字段
  • 使用必須使用CollectionTable註解指定的表收集

一個完整的例子可在the javadoc

+0

感謝。它幫助了很多。 –