我有这样的实体结构:
Product 1 -> N ProductCustomField
1 1
| |
M M'
Release 1 -> N' ReleaseCustomField
ProductCustomField
是一种“原型” - Release 可能具有的字段列表。
我想选择一个Release
对象,其中所有对象ReleaseCustomFields
都ProductCustomField
在Product
其中Release
。
例子:
MySoft 具有自定义字段“downloadURL”,默认值为“”。MySoft 已发布 1.0。这个版本没有ReleaseCustomFields,但因为它是MySoft 的一个版本,我可以看出它可能有“downloadURL”自定义字段。
因此,我希望 MySoft 1.0 版本带有定义“downloadURL”的地图(默认值“”)。
我知道我会在 SQL 中做什么,这将是一个不错的长而复杂的 SELECT,但可能。
我不知道如何在 JPA/Hibernate 中掌握它。
不确定这是否是尝试在SELECT
. 也许我宁愿Release
用 INSERT 填充 的自定义字段,然后简单地依赖映射(这已经有效)?
或者我应该在 中创建一个特殊属性Release
,填充特殊查询?(我不介意使用org.hibernate.*
注释。)
或者我应该做最简单的事情 - 采取release.getProduct().getCustomFields()
并执行“对于 中的每个字段ProductCustomField
,使用中的内容ReleaseCustomField
,还是ProductCustomField#getDefault()
其他方式?