Java 在JPA中将实体转换为枚举,反之亦然

Java 在JPA中将实体转换为枚举,反之亦然,java,hibernate,jpa,Java,Hibernate,Jpa,场景:让我们假设JPA中的单向关系a->manytone->B(因此有两个表a和表B)。通常,这将在实体A中映射为: @ManyToOne @JoinColumn B b; 因此,表A将包含一个外键,它将是表B中的主键 此外,让我们假设B是一个包含静态值的表。 在JPA中,默认情况下,*->One映射是急切的。为了避免额外的查询,我总是可以执行连接获取来避免额外的查询。 我了解如何使用/转换枚举在表中存储列值 问题: 拥有枚举表示真的是一种增值吗 对于静态值,当我们已经有一个表,因此 表B的实

场景:让我们假设JPA中的单向关系a->manytone->B(因此有两个表a和表B)。通常,这将在实体A中映射为:

@ManyToOne
@JoinColumn
B b;
因此,表A将包含一个外键,它将是表B中的主键

此外,让我们假设B是一个包含静态值的表。 在JPA中,默认情况下,*->One映射是急切的。为了避免额外的查询,我总是可以执行连接获取来避免额外的查询。 我了解如何使用/转换枚举在表中存储列值

问题:

  • 拥有枚举表示真的是一种增值吗 对于静态值,当我们已经有一个表,因此 表B的实体
  • 如果我们有一个枚举,是否可以将实体B转换为 枚举(表示静态值),反之亦然?我通常 看到枚举已转换为表中的列,而不是完整的 表中的实体/行
  • 即使上述方法有效,并且我们想要检索A和B,那么 枚举可用于避免额外的连接(不包括获取连接) 进行转换

  • JPA中的枚举是一个列。没什么可说的了。使用枚举比必须加入才能获取更有效values@NeilStockton,您的建议是去掉表B,而在表a中有一列保存枚举中的静态值?查找将在Java枚举类中。表A将具有枚举的字符串或序号。我不是在暗示什么,只是说这样做会比多出一张桌子更有效率。你的选择。