带有非规范化表的弹簧数据规范

时间:2017-05-01 23:59:08

标签: hibernate spring-data spring-data-jpa jpa-2.0

我有一个属性表,其中包含属性值和主表的FK,例如:

Catalog_FK | display_order | prop_name | prop_value
     1     |      1        |  title    |   myTitle
     1     |      2        |  desc     |   ths describes stuff

等等...我想搜索属性列表并返回具有这些属性的所有商品

我在创建规范时尝试了一切,但无法弄清楚如何做...我能够在属性上编写规范来过滤单个属性(并从ManyToOne关系中获取目录)但我只能过滤一个属性,我需要能够过滤属性列表。

我将规范添加到目录(其中包含与道具的OneToMany关系)我尝试手动创建属性并将其传入以查看它是否包含在目录列表中,但是收到了一个hibernate异常,说明了财产没有钥匙。我假设因为Catalog_FK + Display_Order创建了一个复合键。但是我不想搜索那些......所以,我真的不确定如何处理这个...任何建议都会受到赞赏(对不起,我现在没有代码,因为我是在家里和代码正在工作......但我不能停止思考这个问题)

提前致谢...

1 个答案:

答案 0 :(得分:1)

您需要创建自己的Specification。首先,您要创建一个Specification来过滤那些包含给定Catalog的{​​{1}}元素。您可以使用Property

然后你可以使用ConstraintBuilder.exists来组合这些的倍数。