如何使用休眠获取column1中的值小于column2中的记录

时间:2018-06-28 10:34:49

标签: java mysql hibernate

我有一个价格表,其中包含列 buy_price sell_price 。现在,我想使用休眠模式获取包含buy_price < sell_price的记录。

就像mysql查询一样

select * from price where buy_price < sell_price;

但是我不熟悉休眠,所以不知道如何使用休眠(CriteriaSpecification)。

2 个答案:

答案 0 :(得分:0)

假设您有一个名为Price的实体,其属性为buyPricesellPrice

然后select * from price where buy_price < sell_price;可以在hibernate criteria query中转换为(假设您已经有一个休眠会话对象):

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

答案 1 :(得分:0)

您可以尝试以下吗?

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