gpt4 book ai didi

hibernate - 如何在 hibernate 中查询@MapKeyJoinColumn

转载 作者:行者123 更新时间:2023-12-04 04:34:47 24 4
gpt4 key购买 nike

我的资源实体具有如下属性:

@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "CMS_RESOURCE_USER_PERMISSION", joinColumns = @JoinColumn(name = "RESOURCE_ID", referencedColumnName = "ID"))
@MapKeyJoinColumn(name = "USER_ID", nullable = false)
@Enumerated(EnumType.STRING)
@Column(name = "PERMISSION", length = 50, nullable = false)
protected Map<User, ResourcePermission> userPermissions = new HashMap<User, ResourcePermission>();

现在我想按用户获取资源,我该怎么做?有什么建议吗?
感谢先进。

最佳答案

JPQL 有 key()、entry() 和 value() 操作符来处理 Maps。毫无疑问,如果您正在使用 Criteria API,它也有类似的东西。

查看文档的第 11.3.5.1 节:

http://docs.jboss.org/hibernate/core/4.1/devguide/en-US/html/ch11.html

看来你想要这样的东西(我没有试过这个):

"from resources r join r.userPermissions p where key(p) = ?1";

虽然请参阅以下 Hibernate 问题,该问题已在 4.1.4+ 中修复:

https://hibernate.atlassian.net/browse/HHH-5396

关于hibernate - 如何在 hibernate 中查询@MapKeyJoinColumn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19925989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com