是否可以配置 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
我已将这两个类声明为带注释的类...
最佳答案
我建议将 ComponentObj 设为一个真实的实体,带有标识符,并简单地使用 OneToMany 关联。
可以有一组组件,但不是您尝试的方式。
- 组件类必须用
@Embeddable
注释 - 集合必须使用
@ElementCollection
进行注释 - 组件不得具有entity_Id 字段
- 必须使用集合上的
CollectionTable
注释来指定要使用的表
完整的示例可在 the javadoc 中找到。 .
关于java - hibernate组件注释表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473091/