gpt4 book ai didi

java - 是否可以使用 Hibernate 标准获取 Order 的连接表的 SQL 别名?

转载 作者:行者123 更新时间:2023-11-30 00:09:44 25 4
gpt4 key购买 nike

我有这种类型的查询

Critetria criteria = session.createCriteria(Perosn.class,"person");
criteria.createAlias("person.cityInformation","city",JoinType.LEFT_OUTER_JOIN);
criteria.createAlias("city.streetInformation","street",JoinType.LEFT_OUTER_JOIN);
criteria.add(new NativeSQLOrder("field({alias}.id,3,2,1)",true)));

NativeSQLOrder.java

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.annotations.common.util.StringHelper;
import org.hibernate.criterion.CriteriaQuery;
import org.hibernate.criterion.Order;

public class NativeSQLOrder extends Order
{
private static final long serialVersionUID = 1L;
private final static String PROPERTY_NAME = "uselessAnyways";
private boolean ascending;
private String sql;

protected NativeSQLOrder(String sql, boolean ascending)
{
super(PROPERTY_NAME, ascending);
this.sql = sql;
this.ascending = ascending;
}

@Override
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException
{
StringBuilder fragment = new StringBuilder();
fragment.append("(");
fragment.append(sql);
fragment.append(")");
fragment.append(ascending ? " asc" : " desc");
return StringHelper.replace(sql, "{alias}", criteriaQuery.getSQLAlias(criteria));
}
}

我想要根据街道字段的 id 进行排序,但是使用这个我得到了第一个表Person的别名。有什么方法可以得到街道别名表.

最佳答案

关于java - 是否可以使用 Hibernate 标准获取 Order 的连接表的 SQL 别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24178570/

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