问题标签 [hibernate-criteria]
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.
hibernate - 如何使用 Criteria API 指定悲观锁?
我正在使用 Criteria API 检索休眠中的对象列表。但是,我需要锁定这些对象,因为同时执行的另一个线程将获得确切的对象,并且只有一个线程会在没有悲观锁定的情况下成功。
我尝试如下,但它不工作。
更新:我在这个语句之后执行更新,所以我希望两个线程都读取不同的行,或者至少第二个线程应该等到第一个线程完成事务并离开锁。
下面是休眠生成的查询。
更新:Pascal Thivent(非常感谢 Pascal)提到的 3.5.2 版本中似乎存在一个错误,我已作为会员加入并关注该问题。希望它会包含在下一个版本中。
但是,我尝试在这里使用另一种方法session.buildLockRequest()
... 但我不太清楚如何使用它,并且使用下面的代码根本没有任何效果。
hibernate - 使用 Gorm 查询列的子集
假设我有以下 Domain 类:
我有一个不需要显示的列表视图largeCoverArtImage
,如何使用 GORM Criteria 执行以下 SQL 查询?
java - Hibernate Criteria API 多重连接
我的休眠实体如下:
文档如下所示:
基本上我想写的查询是:
如何使用休眠标准 api 执行此操作?
java - 当条件引用嵌入属性时无法解析属性
我似乎无法使用引用嵌入式类中的属性的标准创建查询。当我使用“entity.embedded.property”时它失败了。如果我为自己创建一个“entity.embedded.property”的别名,则查询有效......任何提示将不胜感激......
java - 休眠注解
我在 MySQL 中创建了一个表:
'object_label' 与列 'id' 和 'name'。我在这个表中插入了值。
在java中我创建了新类-'ObjectLabel':
在 hibernate.cfg.xml 中定义:
我想从桌子上得到价值,我定义了服务:
我得到空列表。
在数据库 'select * from 'object_label'' 返回值)
我的代码有什么问题?
谢谢!
java - 如何克服 Hibernate Criteria 和 Example API 的限制?
我所在的位置是,我们公司拥有高度可配置的数据库搜索服务,因此以编程方式配置查询非常有用。Criteria API 很强大,但是当我们的一位开发人员重构其中一个数据对象时,在我们运行单元测试或更糟糕的是,在我们的生产环境中运行并运行之前,标准限制不会表明它们已被破坏。最近,由于这个问题,我们有一个重构项目的工作时间出乎意料地增加了一倍,这是项目计划中的一个差距,如果我们知道它真正需要多长时间,我们可能会采取另一种方法。
我想使用 Example API 来解决这个问题。如果我们在真正的 POJO 属性上指定“where”条件,Java 编译器会大声指出我们的查询是错误的。但是,Example API 中的功能只有这么多,并且在很多方面都受到限制。举个例子
在这里,正在查询属性“name”(其中 name 像 'P%'),如果我要删除或重命名字段“name”,我们会立即知道。但是房产的“价格”呢?它被排除是因为 Product 对象有一些默认值,所以我们将“价格”属性名称传递给排除过滤器。现在,如果“价格”被删除,这个查询在语法上将是无效的,直到运行时你才会知道。瘸。
另一个问题 - 如果我们添加第二个 where 子句会怎样:
由于调用了 enableLike(),此示例将匹配促销文本“折扣高达 10%”,以及“折扣高达 10,000,000 美元”或任何其他匹配的内容。一般来说,Example 对象的查询范围修改,例如 enableLike() 或 ignoreCase() 并不总是适用于检查的每个属性。
这是第三个也是主要的问题——其他特殊标准呢?使用标准示例框架无法让每件产品的价格都超过 10 美元。无法按促销、降序对结果进行排序。如果 Product 对象加入了某个制造商,则也无法在相关的制造商对象上添加标准。也没有办法在制造商的标准上安全地指定 FetchMode(尽管这通常是 Criteria API 的一个问题 - 无效的获取关系会默默地失败,甚至更像是一个定时炸弹)
对于上述所有示例,您将需要返回到 Criteria API 并使用属性的字符串表示来进行查询 - 同样,消除了示例查询的最大好处。
Example API 有哪些替代方案可以获得我们需要的编译时建议?
java - 休眠标准投影
正如问题标题所说,我正在尝试制作一个仅查询几个表属性的投影标准。
所以我有一个人表/类,它有大约 40 个属性。我希望我的标准能够获得动态的属性数量,比如说 10、11 或 12(SQL 术语select firstname, lastname from person
),我这样做是这样的:
它返回retList
元素不是来自Person.class
:
信息 [AWT-EventQueue-0] (UserGroupManagerApp.java127) - [Ljava.lang.Object;@14b9b80
致命 [AWT-EventQueue-0] (Login.java78) - java.lang.ClassCastException: [Ljava.lang.Object; 无法转换为 usergroupmanager.model.db.Person java.lang.ClassCastException: [Ljava.lang.Object; 无法转换为 usergroupmanager.model.db.Person
请帮忙,现在我列出了所有 40+ attr,它占用了查询时间,我不喜欢它。我也在寻找可以帮助我解决这个问题的替代解决方案。我读过ResultTransformer
但还没有找到如何在我的情况下使用它。
java - Hibernate 多对多标准投影
编辑>我处于死胡同...所以我可以继续寻找主要原因..请告诉我如何为具有多个 eq 限制的多对多关系制定一个简单的标准,例如,如何在此处显示的示例中让说英语和德语的人...
我的情况是这样的,我有两个班级的人和语言,有一个,m 的关系。我正在使用一个标准来进行搜索 - 获取所有说 ex 的人。英语和德语
标准
有趣的是,如果我只为一种语言设置它,我会得到正确的人员列表,但对于不止一种语言我没有得到,我重新检查了我的基础并设置了一个人专门说两种语言。但最让mi提示的是,Object[]中的投影结果在Set语言应该在的地方,有NULL值……
请帮助tnx
grails - groovy / grails / 单元测试 / createCriteria.get
我可以模拟调用:
和:
如建议:
http://davistechyinfo.blogspot.com/2010/01/mocking-hibernate-criteria-in-grails.html
但对于:
这种方法失败了——可能是因为“get”是一个关键字,而“list”不是。任何人都可以建议 - 能够在域类中模拟这个应该是可能的,而不是简单地放弃使用createCriteria().get{}
.
建议非常感谢,
亚历克斯
sql - Hibernate简单条件查询解决问题
我遇到了一个非常简单的标准查询问题:
当然,这会导致没有用户。
在 SQL 中我也试过了:
当然也没有用户
SQL中的两种解决方案,我认为不是很有效:
其他:
这些结果给了我很好的信息,但我认为这不是正确的方法。以及我将如何使用 Criteria API 在 Hibernate 中实现这一点。
或者我的数据库中需要一个新表?