Java Spring data jpa—包含表中所有可能值的字段
使用Spring Boot和Spring Data JPA,我有一个表示枚举值的表,以及一个对应的实体,我希望其中一个字段是“枚举可以具有的所有可能值”,即一个字段Java Spring data jpa—包含表中所有可能值的字段,java,hibernate,spring-boot,spring-data-jpa,Java,Hibernate,Spring Boot,Spring Data Jpa,使用Spring Boot和Spring Data JPA,我有一个表示枚举值的表,以及一个对应的实体,我希望其中一个字段是“枚举可以具有的所有可能值”,即一个字段possibleValues,它将是另一个表上的全选。最好我不想拥有像@manytomy这样的关系,因为: 它将始终是全选,我不想将所有选项保存到数据库中,并在每次枚举值表更改时更新它们 我将有几个枚举,因此对于每个枚举,创建另一个多对多枚举并不理想 我试图找到类似于@Formula的东西,它可以让我从另一个表中选择所有值,但似乎不起
possibleValues
,它将是另一个表上的全选。最好我不想拥有像@manytomy
这样的关系,因为:
@Formula
的东西,它可以让我从另一个表中选择所有值,但似乎不起作用:
@Transient
@公式(“从枚举表e中选择e.name”)
私有列表可能值;
结果是,
可能值
总是为空,如果我删除了@Transient
,我必须定义这两个实体之间的关系。对于数据库中的枚举值,我建议使用字符串(对于对象,可以在存储前使用JSON进行转换,在检索后使用JSON进行转换)对于数据库中的枚举值,我建议使用字符串(对于对象,可以在存储之前使用JSON进行转换,在检索之后使用JSON进行转换)为什么需要枚举表?您可以将其作为代码库中静态值的一部分。它们不像代码中那样严格地枚举,而是一个包含更多数据的可能值列表,加上它们具有i18n属性。在这种情况下,您更愿意将其作为实体添加,因为hibernate忽略了公式
,因为它标记为瞬态
将其作为实体添加是什么意思?如果它是类中的一个属性列表
,我仍然需要定义一个关系或使其成为@Transient
。我需要此列表始终包含EnumEntity
的所有可能值,为什么它甚至应该是您的实体的一部分?如果您需要它以HTML形式显示,只需检索它并将其放入集合中,不要试图将其硬塞进您的实体中,因为它根本不属于那里。为什么需要一个枚举表?您可以将其作为代码库中静态值的一部分。它们不像代码中那样严格地枚举,而是一个包含更多数据的可能值列表,加上它们具有i18n属性。在这种情况下,您更愿意将其作为实体添加,因为hibernate忽略了公式
,因为它标记为瞬态
将其作为实体添加是什么意思?如果它是类中的一个属性列表
,我仍然需要定义一个关系或使其成为@Transient
。我需要此列表始终包含EnumEntity
的所有可能值,为什么它甚至应该是您的实体的一部分?如果您需要它以HTML形式显示,只需检索它并将其放入集合中,不要试图将其硬塞进您的实体中,因为它根本不属于该实体。您能详细说明原因吗?还有,它是如何解决问题的?任何对象都可以转换为JSON字符串,然后将字符串存储到数据库中,当您检索出JSON字符串时,您可以将其转换回对象。当然,您可能需要另一列来指示实际类型,例如图书对象等。我仍然不明白这是如何解决原始问题的-它如何帮助您使用@Formula
来检索所有实体?它与@Formula无关,它更像是一个通用的解决方案。好的,它是如何解决问题的?我将如何获得所有可能的值?您能否详细说明原因?还有,它是如何解决问题的?任何对象都可以转换为JSON字符串,然后将字符串存储到数据库中,当您检索出JSON字符串时,您可以将其转换回对象。当然,您可能需要另一列来指示实际类型,例如图书对象等。我仍然不明白这是如何解决原始问题的-它如何帮助您使用@Formula
来检索所有实体?它与@Formula无关,它更像是一个通用的解决方案。好的,它是如何解决问题的?如何获得所有可能的值?