关于Hibernate、NHibernate的 HQL 连接字段,字段拼接查询问题

假若您遇到了这样的数据库查询问题:

网上看到的问题:

在sql中可以select userName(select t.lastname || ''|| t.firstname as userName from user_info t)
可以把lastname和firstname合在一起变成一个字段userName 但是在hql中不知道

连接 orcale,db2 用 ||,sqlserver 用 + 。


在SQL语句中我们可以直接将字段进行连接(拼接)来形成一个我们需要的新的列,如下SQL所示:

--For SQL Server:
SELECT mc,bh+ ',' + CAST(jc AS varchar) AS bh FROM xt_bmxx where lxid='md'

--For orcale,db2 ,Informix,==:
SELECT mc,bh || ',' || jc AS bh FROM xt_bmxx where lxid='md'


但在Hibernate、NHibernate的HQL语句中我们没法这样去编写语句,但方法总是有的,我们可以在实体类(JAVA中叫JavaBean)中进行字段的连接,如下所示:

public class TestEntity
{
    private string _bh;
    private string _mc;
    private int _jc;

    public string Bh
    {
        get
        {
            return this._bh;
        }
        set
        {
            this._bh = value;
        }
    }

    public int Jc
    {
        get
        {
            return this._jc;
        }
        set
        {
            this._jc = value;
        }
    }

    //拼接字段,没有set
    public string BhAndJc
    {
        get
        {
            return this.Bh + "," + Jc;
        }
    }
}


就这样,搞定了。


来源:万达源科技

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值