hibernate 直接使用 sql 语句

1.创建SQL
StringBuffer buff = new StringBuffer();
buff
.append("select m.id,m.member_name,b.sex,b.birthday,b.contact_province,b.contact_city,");
buff
.append("b.incoming,b.stature,b.self_description,b.self_description_approved,b.default_photo_path ");
buff.append("from member m ");
buff.append("inner join member_basic_profile b on b.member_id = m.id ");
buff.append("inner join favorite f on f.member_id = m.id ");
buff.append("where m.id = :memberId ");
buff.append("order by b.default_photo desc,f.create_time desc");
GET_MY_FAVORITES = buff.toString();

2, 创建session,并执行SQL ,并实现分页
Session session = HibernateManager.getCurrentSession();
Query q = session.createSQLQuery(GET_OTHER_FAV);
q.setInteger("memberId", favoriteId);
if (startRow != null && fetchSize != null) {
q.setFirstResult(startRow);
q.setMaxResults(fetchSize);
}

3.读取数据
List result = new ArrayList();
for (Iterator iter = records.iterator(); iter.hasNext();) {
Object[] row = (Object[]) iter.next();
MemberExt ext = new MemberExt(); // member扩展类
MemberBasicProfile profile = new MemberBasicProfile();

ext.setMemberBasicProfile(profile);
ext.setId(HibernateHelper.getInt(row[0]));
ext.setMemberName((String) row[1]);

profile.setSex((String) row[2]);
profile.setBirthday((Date) row[3]);
profile.setContactProvince((String) row[4]);
profile.setContactCity((String) row[5]);
profile.setIncoming((String) row[6]);
profile.setStature((String) row[7]);
profile.setSelfDescription((String) row[8]);
profile.setSelfDescriptionApproved(HibernateHelper
.getInt(row[9]));
profile.setDefaultPhotoPath((String) row[10]);

result.add(ext);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值