问题标签 [persistent-set]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 从未初始化的持久集合中获取 ID
在查看 Hibernate API 文档或 SO 时,我遇到了一种情况,我没有找到答案。
我们有一个断开连接的设置,我们通过网络发送实体和集合。我们正在寻找一种使用本地化缓存来减少一些线路流量的方法,并且我试图弄清楚是否有一种方法可以在不初始化集合的情况下获取持久集合(特别是 PersistentSet)中实体的 ID ?
hibernate - Hibernate - PersistentSet 没有更新
我使用 JPA 2.0 标准和休眠作为持久性提供程序。在使用 ElementCollections 时,我很想知道为什么 org.hibernate.collection.PersistentSet 不能更新?
PersistentSet 中的方法 isRowUpdatePossible() 返回 false。与可更新的 PersistentList 相比,Set 执行多次删除和插入,而不仅仅是更新。
例如,考虑我的实体有一个当前具有值 {1、2、3} 的集合。我通过清除它然后添加 {4、5、6} 来更新集合。在调用 entityManager.merge(entity) 3 时会触发删除和插入查询。
如果在上面的例子中我使用了一个 List,那么只有一个更新查询会被绑定值触发。
当我的数据库可以设法避免列中的重复时,查询的数量使我得出使用列表的结论。
总结问题
- 为什么 org.hibernate.collection.PersistentSet 不可更新?PersistentSet 中的方法 isRowUpdatePossible() 返回 false。
- 当数据库可以处理重复项时,List 比 Set 更好吗?
对这些问题的想法将不胜感激。
java - 将 Hibernate 的 PersistentSet 转换为 CopyOnWriteArraySet
我在下面的类中使用 CopyOnWriteArraySet,因为我只是喜欢它的线程安全迭代器。
但是,我也使用 Hibernate 来实现持久性,它将我的 CopyOnWriteArraySet 替换为它自己的 PersistentSet(它在内部使用 HashSet)。
不幸的是,HashSet 不是线程安全的,所以我想要我的 CopyOnWriteArraySet 回来。
转换的最佳实践是什么?
我个人的,天真的尝试是用这个替换setter:
这是解决这个问题的好方法吗?
java - 集合中的新实体未持久化
JPA + 休眠
我正在使用此代码创建一个新AvatarAttributeOwnership
( AAO
) 并将其分配给 Player。但是,新AAO
的不会持久化到数据库中。
实体:
sorting - 如何对 grails 对象的持久集进行排序?
我有两个域模型:
控制器:
所以现在在我的gsp中:
我的问题是如何对这个“item.resources”进行排序?这是一套持久化的hibernate!我认为这可以用映射排序名称来处理:'asc',但它不起作用:-(
java - 应该怎么做才能使用查询条件过滤持久集
我有两个 DAO 课程FeeGroup
,FeeHeading
就像这样
这是根据和的值HQL
获取结果的查询。isActive
FeeHeading
FeeGroup
FeeGroup
id 为 78 的下面有 10秒FeeHeading
,只有一个标题的 isActive 为 1。即使我将过滤条件设为 ,当前查询也返回 10 条记录fh.isActive = 1
。但是当我将查询更改为
只有一个记录即将到来,这是唯一的活动记录。那么,为什么Set
即使给出了条件,我也没有首先得到过滤,或者我应该在查询中做什么来过滤呢?
hibernate - Hibernate PersistenceSet 和 Lombok EqualsAndHashCode 问题
我有一个实体,比方说一个使用
@EqualsAndHashCode(callSuper = true)
自动生成equals()
和hashCode()
方法的 Lombok 注释的项目。实体被放在一个HashSet
集合中。
问题是,当我从数据库(Spring JPARepository
with Hibernate)PersistentSet
代理获取包含我的项目的集合HashSet
时,当我使用Lombok@EqualsAndHashCode
时,该方法 persistentSet.contains(object)
返回false
. 当我hashCode()
返回 1 或其他值但没有 Lombok自动生成的方法时,它可以正常工作 ->persistentSet.contains(object)
返回true
。Lombok 自动生成的其他内容hashCode()
似乎也很好,因为它返回会话中给定对象的常量值。所以我迷路了。
也许有人知道我们在这里可能错了什么!?
版本:
休眠:5.3.9.Final
Lombok:1.18.10
数据库:MySQL
Spring:5.1.9.RELEASE
hibernate - 在休眠中保存集合的顺序
我有两个集合,默认情况下由休眠设置为 PersistentSet。问题是在引擎盖下休眠将它们转换为 HashSet,但我希望将它们设置为 LinkedHashSet,因为我想保留添加元素的顺序。
我尝试了几件事,但没有成功
我尝试的另一件事是:
hibernate - 将 Hibernate 的 PersistentSet 更改为 HashSet
我有一个程序可以比较来自 2 个数据库的对象。
我有来自 2 个不同数据库的对象,我必须比较它们。问题是hibernate返回一个persistentSet,这会导致程序失败,因为它只支持java Collections。
有没有一种优雅的方法可以将此persistentSet 更改为HashSet。我已经尝试过 Introspector 方法,但它似乎仍然不适用于这个比较器。