spring 非规范化数据规范 table

spring data specification with denormalized table

我有一个 属性 table 保存 属性 值和一个 FK 到主要 table,例如:

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

等等...我想搜索属性列表和 return 具有这些属性的所有目录条目

我在创建规范时尝试了所有方法,但不知道该怎么做...我可以在 属性 上编写规范来过滤单个 属性 (并从 ManyToOne 关系中获取目录)但我只能过滤单个 属性,我需要能够过滤属性列表。

我将规范添加到目录中(其中包含与 props 的 OneToMany 关系)我尝试手动创建一个 属性 并将其传入以查看它是否包含在目录列表中,但是收到休眠异常,说 属性 没有密钥。我假设是因为 Catalog_FK + Display_Order 创建了一个复合键。但我不想搜索那些... ...所以,我真的不确定如何处理这个...任何建议将不胜感激(抱歉,我现在没有代码在家,代码在工作......但我无法停止思考这个问题)

提前致谢...

您需要创建自己的 Specification。首先,您将创建一个 Specification 来过滤那些包含给定 PropertyCatalog 元素。您可以为此使用 ConstraintBuilder.exists

然后您可以使用 Specifications.and 组合这些的倍数。