相关疑难解决方法(0)

具有最大值的实体的HQL查询

我有一个看起来像这样的Hibernate实体(为了简洁省略了访问器):

@Entity
@Table(name="FeatureList_Version")
@SecondaryTable(name="FeatureList",
    pkJoinColumns=@PrimaryKeyJoinColumn(name="FeatureList_Key"))
public class FeatureList implements Serializable {

    @Id
    @Column(name="FeatureList_Version_Key")
    private String key;

    @Column(name="Name",table="FeatureList")
    private String name;

    @Column(name="VERSION")
    private Integer version;

}
Run Code Online (Sandbox Code Playgroud)

我想制作一个HQL查询来检索FeatureList的最新版本.以下查询排序:

Select f.name, max(f.version) from FeatureList f group by f.name
Run Code Online (Sandbox Code Playgroud)

问题是不会填充关键字段,我需要包含具有给定FeatureList的最高版本号的记录的键.如果我在select中添加f.key它将无法工作,因为它不在group by或聚合中,如果我把它放在组中,整个停止工作,它只是给我每个版本作为一个单独的实体.

那么,任何人都可以帮忙吗?

java hibernate hql

31
推荐指数
3
解决办法
7万
查看次数

Hibernate Criteria Limit机制?

Hibernate Criteria支持提供了setMaxResults()一种限制db返回结果的方法.

我在他们的文档中找不到任何答案 - 这是如何实现的?是查询整个结果集然后只返回请求号吗?或者它是否真正限制了数据库端的查询(想想在mySql中的LIMIT关键字).

这很重要,因为如果一个查询可能会返回许多结果,我真的需要知道它是否setMaxResults()仍然会查询数据库中的所有行(这会很糟糕).

另外 - 如果它真正限制了数据库端的行数,它是如何实现这个跨db的(因为我不认为每个rdbms都支持像mySql那样的LIMIT功能).

java sql hibernate criteria

18
推荐指数
3
解决办法
3万
查看次数

如何在Hibernate中设置内部查询的限制?

我有这样的HQL:

from Table1 t1 where t1.name not in (select t2.name from Table2 t2 order by t2.date limit 10)
Run Code Online (Sandbox Code Playgroud)

问题是它不懂limit关键字.有没有办法运行这样的查询而不将其分成两个子查询?

java mysql hibernate hql

12
推荐指数
1
解决办法
2万
查看次数

DB2 AS/400版本4的SQL查询限制

我知道版本太旧了(是的,版本4!),但我别无选择.

如何仅为DB2 AS400限制我的查询例如100行?

FETCH FIRST n ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

ROW_NUMBER()
Run Code Online (Sandbox Code Playgroud)

不工作.

任何想法或解决方法?

这是一个示例SQL查询(不起作用):

SELECT POLNOP FROM ZICACPTF.POLHDR FETCH FIRST 10 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

它说

[SQL0199]不期望关键字FETCH.有效令牌:FOR WITH ORDER UNION OPTIMIZE.

sql db2

9
推荐指数
1
解决办法
1147
查看次数

如何设置hibernate查询的限制

如何设置此hql查询的限制?当我在查询中添加limit关键字时,会引发错误.

 @Query("from voucher v where  v.voucherType.typeDescription = :typeDescription and v.denomination = :denomination")
 public List<Voucher> findByVoucherTypeAndDenomination(@Param("typeDescription") String typeDescription,@Param("denomination") BigDecimal denomination);
Run Code Online (Sandbox Code Playgroud)

hql

8
推荐指数
1
解决办法
3万
查看次数

如何使用Hibernate获取10个随机唯一对象的列表?

有没有人有关于如何从数据库中获取10个随机唯一对象列表的HQL查询?

它应该在数据库中而不是在应用程序中完成.我希望获得比我目前的解决方案更好的性能,这几乎可以提出10个请求来提交列表.

java select hibernate unique

6
推荐指数
2
解决办法
6021
查看次数

想用HQL只获取5条记录

可能重复:
如何在HQL中执行限制查询

我是HQL的新手.我有以下工作HQL查询:

from Order as o where o.account.profile.userId='abc' order by o.orderID desc
Run Code Online (Sandbox Code Playgroud)

此查询返回用户abc下的订单列表.用户可以在DB中放置0到5000+个订单.但我想只显示前5条记录(订单).我正在使用java List的子列表功能.

我可以使用HQL查询直接获取前5条记录吗?哪种写入此查询更有效?

spring hibernate hql

6
推荐指数
1
解决办法
2万
查看次数

在JPA Query上设置ORDER BY和LIMIT子句

我对Hibernate和JPA非常非常新.我希望能够将ORDER BY和LIMIT子句应用于Hibernate(?)查询,但是我的结果是空的.注意:我继承了这段代码.

这是当前的代码:

public SomeCoolResponse getSomeCoolResponse(String myId) {
    String queryString = "select aThing from AWholeBunchOfThings aThing " +
    "join aThing.thisOtherThing oThing join oThing.StillAnotherThing saThing " + 
    "where saThing.subthing.id = :id";

    Query q = getEntityManager().createQuery(queryString);
    q.setParameter("id", myId);

    List<MyThings> list = q.getResultList();

    if(list.size() > 0) {
        return list.get(0);
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

而不是获取整个列表然后只返回第一个结果(这是我们唯一需要的结果),我希望能够应用一个LIMIT 0,1子句,以便查询更快.此外,查询需要按降序排序,aThing.created这是一个UNIX时间戳整数.

我试过改变queryString这样的:

String queryString = "select aThing from AWholeBunchOfThings aThing " +
    "join aThing.thisOtherThing oThing join oThing.StillAnotherThing saThing " + 
    "where saThing.subthing.id …
Run Code Online (Sandbox Code Playgroud)

java mysql sql hibernate jpa

2
推荐指数
1
解决办法
2万
查看次数

hql等效查询此sql查询

Select top 1 from <tablename>
Run Code Online (Sandbox Code Playgroud)

什么是上面的hql查询?

sql hql

1
推荐指数
1
解决办法
470
查看次数

如何在冬眠中限制对象的属性中的集合?

我有两个实体:项目和投标,每个项目都有很多投标,因此投标是项目的集合属性。

在显示项目的页面中,我只想显示有关此“项目”的出价的前10条记录。

所以,我这样做查询:

from item
left join fetch item.bids
where item.id=3
...
Run Code Online (Sandbox Code Playgroud)

但这将获取有关某个项目的所有出价,因此,如何限制该项目的出价?

java sql orm hibernate jpa

1
推荐指数
1
解决办法
2749
查看次数

标签 统计

hibernate ×7

java ×6

hql ×5

sql ×5

jpa ×2

mysql ×2

criteria ×1

db2 ×1

orm ×1

select ×1

spring ×1

unique ×1