架构师之hibernate实体注解------实体如何用setResultTransformer转换?

1.前言.
当你用hibernate查出数据,但是类型不是原来的类型怎么办,新增的实体类还用不用,答案是可以用的.用query.setResultTransformer(Transformers.aliasToBean(AA.class));这种形式可以解决查出来的数据不能使用的问题.
2.代码

(1)查询dao
String sql = "select USER_ID,USERNAME from test where USER_ID= :id";
Query query = getCurrentSession().createSQLQuery(sql);//.addScalar("MODULE_ID", LongType.INSTANCE);
query.setBigDecimal("id", new BigDecimal("1"));
query.setResultTransformer(Transformers.aliasToBean(UserEntity.class));
List<UserEntity> list=null;
list=query.list();
return list;



(2)实体类

package com.test.ljn.sample.domain;

import java.math.BigDecimal;
import java.math.BigInteger;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

import com.test.ljn.base.domain.IBean;

import javax.persistence.Table;

import org.hibernate.annotations.PolymorphismType;
import org.hibernate.annotations.Polymorphism;

@Entity
@Table(name = "test_USER")
@Polymorphism(type = PolymorphismType.EXPLICIT)
public class UserEntity implements IBean<Long> {

/**
*
*/
private static final long serialVersionUID = 1L;

/** 模块ID */
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "USER_ID", unique = true, nullable = false)
private BigInteger USER_ID;

/** 父模块ID */
@Column(name = "USERNAME")
private String USERNAME;


public BigInteger getUSER_ID() {
return USER_ID;
}

public void setUSER_ID(BigInteger uSER_ID) {
USER_ID = uSER_ID;
}

public String getUSERNAME() {
return USERNAME;
}

public void setUSERNAME(String uSERNAME) {
USERNAME = uSERNAME;
}



}

3.需要注意的.
(1)这种转换实体类很严格,必须连属性名字要和数据库字段高度一致(注解此时没很大作用用.
(2)实体类可以比表字段少一些字段.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值