我有3个实体,如:
provideForms()
我想搜索USER entites但是使用PERMISSION实体的名称(即如果用户键入了PERMISSION的名称,那么所有用户都应该通过GROUP实体获得具有该PERMISSION的用户)
我有一个解决方案如何连接2个实体(使用indexEmbedded和containedIn),但是没有线索当有3个实体时该做什么。
有人可以帮忙吗?
谢谢,V。
我必须遵循Permission实体中的更改,所以我也使用containsIn。使用以下代码时,我有一个NullPointerException。
USER GROUP PERMISSIONS
id id id
name ... name
... ...
group_id group_id
例外:
indexedMapping
.property("groups", ElementType.METHOD)
.indexEmbedded()
.prefix("group.")
.targetElement(Group.class);
super.entity(Group.class)
.indexed()
.indexName("Group_Index")
.property("name", ElementType.FIELD)
.field()
.property("user", ElementType.FIELD)
.containedIn()
.property("permission", ElementType.METHOD)
.indexEmbedded()
.prefix("permission.")
.targetElement(Permission.class);
super.entity(Permission.class)
.indexed()
.indexName("Permission_Index")
.property("name", ElementType.FIELD)
.field()
.store(Store.YES)
.property("groups", ElementType.METHOD)
.containedIn();
答案 0 :(得分:0)
链接indexedEmbedded
。在indexedEmbedded
上的user.group
和上使用group.permission
。然后,属性user.group.permissions.name
将自动添加到User
索引。
请注意,如果我没记错的话,Group
和Permission
个实体必须为此编制索引(@Indexed
注释或程序化API等效项)(尤其是containedIn
)即使您没有明确地查询Group
或Permission
索引,也能正常工作。