gpt4 book ai didi

java - 寻找 HQL 构建器(Hibernate 查询语言)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:58:57 24 4
gpt4 key购买 nike

我正在为 HQL 寻找建筑商在 java 。我想摆脱这样的事情:

StringBuilder builder = new StringBuilder()
.append("select stock from ")
.append( Stock.class.getName() )
.append( " as stock where stock.id = ")
.append( id );

我宁愿有这样的东西:

HqlBuilder builder = new HqlBuilder()
.select( "stock" )
.from( Stock.class.getName() ).as( "stock" )
.where( "stock.id" ).equals( id );

我用谷歌搜索了一下,但找不到。

我写了一个快速而愚蠢的 HqlBuilder 来满足我现在的需要,但我很想找到一个拥有比我一个人更多的用户和测试的。

注意:我希望能够做这样的事情以及更多,但我无法使用 Criteria API 做到这一点:

select stock
from com.something.Stock as stock, com.something.Bonus as bonus
where stock.someValue = bonus.id

即。从 Bonus 表中选择其属性 someValue 指向 any bonus 的所有股票。

谢谢!

最佳答案

对于您的问题的类型安全方法,请考虑 Querydsl .

示例查询变为

HQLQuery query = new HibernateQuery(session);
List<Stock> s = query.from(stock, bonus)
.where(stock.someValue.eq(bonus.id))
.list(stock);

Querydsl 像 JPA2 一样使用 APT 进行代码生成,并支持 JPA/Hibernate、JDO、SQL 和 Java 集合。

我是Querydsl的维护者,所以这个回答有失偏颇。

关于java - 寻找 HQL 构建器(Hibernate 查询语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56843/

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