假设我有一个表有两列firstname
和lastname
的String数据类型。通常我会编写像
"select firstname,lastname from contact"
我可以编写一个连接两个属性的hql查询吗?
也许像"select firstname+lastname as fullname from Contact"
答案 0 :(得分:40)
select concat(c.firstname, c.lastname) as fullname from Contact c
或者,如果你想要一个分隔符:
select concat(c.firstname, ' ', c.lastname) as fullname from Contact c
答案 1 :(得分:17)
您可以在实体中创建计算列:
@Formula(value = " concat(first_name, ' ', last_name) ")
private String fullName;
在您的HQL中,您可以像对待任何其他人一样参考此字段。
在您的情况下,您可以这样做:
"select fullName from Contact"
答案 2 :(得分:3)
我用hql
这样做了public List<Contract> findContracts(String fullName) {
Query q = sessionFactory.getCurrentSession().createQuery("from Contract c where :fullName = concat(c.firstname, ' ', c.lastname)");
q.setString("fullName", fullName);
return q.list();}
答案 3 :(得分:2)
您也可以使用||连接运算符:
let myclassa = new MyClassA(), myclassb = new MyClassB();
export {myclassa, myclassb, MyClassC};
尽管阅读可能会令人困惑。