java—如何使用hibernate获取列1中的值小于列2的记录

shyt4zoc  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(253)

我有一个价格表,其中包含购买价格和出售价格列。现在,我想得到包含 buy_price < sell_price 使用hibernate。
就像mysql查询一样

select * from price where buy_price < sell_price;

但是我不知道如何使用hibernate(criteriaspecification)执行,因为我是hibernate新手。

inb24sb2

inb24sb21#

假设您有一个名为 Price 具有属性 buyPrice 以及 sellPrice .
那么 select * from price where buy_price < sell_price; 可以在hibernate条件查询中转换为(假设您已经有hibernate会话对象):

Criteria cr = session.createCriteria(Price.class);
cr.add(Restrictions.lt("buyPrice", "sellPrice"));
List results = cr.list();
pbpqsu0x

pbpqsu0x2#

你能试试下面的吗?

CriteriaQuery<Price> cq = cb.createQuery(Price.class);
    Root<Price> eg = cq.from(Price.class);
    cq.where(cb.gt(eg.get("sellPrice"), eg.get("buyPrice")));

相关问题