我有一个实体,用户。
@Entity
@Table(name="user")
public class Users implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private UsersPK ids;
private String password;
此实体具有UsersPK对象。 UsersPK只是一个包含Users主键的类。例如,用户名。此外,主键的getter和setter。
现在,我想访问数据库。
Session session = entityManager.unwrap(Session.class);
SQLQuery query = session.createSQLQuery("//working sql statement here");
query.setParameter("username", username);
query.setParameter("password", password);
query.setResultTransformer(Transformers.aliasToBean(Users.class));
query.addScalar("username");
query.addScalar("password");
Users user1 = (Users) query.uniqueResult();
return user1;
我遇到错误 -
我认为这是因为用户名位于UsersPK类而不是Users类,但Users类有一个UserPK对象。
这里的问题是如何访问该对象,以便我可以在addScalar
函数中使用它。
我已尝试声明query.setResultTransformer(Transformers.aliasToBean(UsersPK.class));
仍然没有工作。
答案 0 :(得分:0)
尝试更改此
query.setResultTransformer(Transformers.aliasToBean(Users.class));
query.addScalar("username");
query.addScalar("password");
这个
query.addScalar("username");
query.addScalar("password");
query.setResultTransformer(Transformers.aliasToBean(Users.class));