java - hibernate组件注释表

标签 java spring hibernate

是否可以配置 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/

相关文章:

java - 多对多自引用hibernate注释(带有两个实体)

java - 修改 UI 线程 View 时 Android UI 不会崩溃

java - Apache Camel 动态消费者

java - 创建一个 DelegateForest 并以预先确定的顺序显示它

java - jdk-8u191 中修复了 LDAP 条目中毒问题吗?

java - springMvc 和 hibernate 持久化

java - JPA 2 中仅基于一个纯字符串的孤立删除

java - Spring Cloud Vault 从错误的配置文件中获取属性

java - 使用mockito测试Hibernate DAO方法

java - 在启动时进行 DDL 验证时,Hibernate 不使用 @Table。使用 Flyway 和 TestContainers