【发布时间】:2014-11-07 22:09:13
【问题描述】:
我有这个实体:
public class User
{
private Integer idUser;
private String user;
private String password;
private Perfil perfil;
Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "idUser", unique = true, nullable = false)
public Integer getIdUser()
{
return this.idUser;
}
public void setIdUser(Integer idUser)
{
this.idUser = idUser;
}
@Column(name = "user", nullable = false)
public String getUser()
{
return this.user;
}
public void setUser(String user)
{
this.user = user;
}
@Column(name = "password", nullable = false)
public String getPassword()
{
return this.password;
}
public void setPassword(String password)
{
this.password = password;
}
@OneToOne
@JoinColumn(name = "idPerfil", nullable = false)
public Perfil getIdPerfil()
{
return idPerfil;
}
public void setIdPerfil(Perfil idPerfil)
{
this.idPerfil = idPerfil;
}
}
public class Perfil
{
private Integer idPerfil;
private String perfil;
private String description;
Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "idPerfil", unique = true, nullable = false)
public Integer getIdPerfil()
{
return this.idPerfil;
}
public void setIdPerfil(Integer idPerfil)
{
this.idPerfil = idPerfil;
}
@Column(name = "description", nullable = false)
public String getDescription()
{
return this.description;
}
public void setDescription(String description)
{
this.description = description;
}
}
我只想获取 idUser、user 和 idPerfil;我用的:
Session session = HibernateUtil.openSession();
try
{
Criteria criteria = session.createCriteria(User.class);
ProjectionList proList = Projections.projectionList();
proList.add(Projections.property("idUser"), "idUser");
proList.add(Projections.property("user"), "user");
proList.add(Projections.property("idPerfil"), "idPerfil");
criteria.setProjection(proList);
criteria.setFetchMode("idPerfil.idPerfil", org.hibernate.FetchMode.JOIN);
criteria.setResultTransformer(Transformers.aliasToBean(User.class));
List<User> list = criteria.list();
return list;
}
catch (Exception e)
{
throw e;
}
finally
{
session.close();
}
对于实体用户工作正常,我得到属性 especify 的值,但从 idPerfil 我得到所有值属性,我只想要 idPerfil。如何查询?
【问题讨论】:
标签: java mysql hibernate jpa criteria