Java 带条件的Hibernate调用函数
我刚开始冬眠。Java 带条件的Hibernate调用函数,java,hibernate,hibernate-criteria,Java,Hibernate,Hibernate Criteria,我刚开始冬眠。 我想用条件调用我的自定义函数。 简单地说,我想这样调用函数: 从表中选择*,其中test=1订单由我自己的函数(arg1,arg2)asc执行 这个问题可以通过使用HQL解决。 但是我有很多可选条件,所以我必须动态附加条件 有没有办法解决这个问题?如果没有,你能告诉我其他方法吗?由于评论只支持一行,我将我的解决方案粘贴在这里, 1.扩展订单,链接是 } 使用公式将列添加到订单 嘿,你解决了吗?我有同样的问题。@Stony我用HQL而不是标准解决了这个问题。使用条件,似乎没有支持
我想用条件调用我的自定义函数。
简单地说,我想这样调用函数:
从表中选择*,其中test=1订单由我自己的函数(arg1,arg2)asc执行
这个问题可以通过使用HQL解决。
但是我有很多可选条件,所以我必须动态附加条件
有没有办法解决这个问题?如果没有,你能告诉我其他方法吗?由于评论只支持一行,我将我的解决方案粘贴在这里, 1.扩展订单,链接是 }
嘿,你解决了吗?我有同样的问题。@Stony我用HQL而不是标准解决了这个问题。使用条件,似乎没有支持的方法通过hibernate调用我自己的函数。非常感谢您的回复。我得到了两个使用标准的解决方案;1.延长订单;2.将列添加到订单的用户公式。
package ro.tremend.util.hibernate;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.CriteriaQuery;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
/**
* Extends {@link org.hibernate.criterion.Order} to allow ordering by an SQL formula passed by the user.
* Is simply appends the <code>sqlFormula</code> passed by the user to the resulting SQL query, without any verification.
* @author Sorin Postelnicu
* @since Jun 10, 2008
*/
public class OrderBySqlFormula extends Order {
private String sqlFormula;
/**
* Constructor for Order.
* @param sqlFormula an SQL formula that will be appended to the resulting SQL query
*/
protected OrderBySqlFormula(String sqlFormula) {
super(sqlFormula, true);
this.sqlFormula = sqlFormula;
}
public String toString() {
return sqlFormula;
}
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
return sqlFormula;
}
/**
* Custom order
*
* @param sqlFormula an SQL formula that will be appended to the resulting SQL query
* @return Order
*/
public static Order sqlFormula(String sqlFormula) {
return new OrderBySqlFormula(sqlFormula);
}