我正在使用Hibernate,我正在尝试返回有关用户的一些信息,这些信息保存在2个单独的表中。
我所提出的问题:
@Entity(name = "Users")
@Table(name = "Users")
@NamedQueries(
{
@NamedQuery(name = QueryNames.QUERY_USER_GET_ALL_USERS_BASIC_INFO,
query = "select u.userId, p.personName, p.personMobile, p.personEmail, u.userStaus, u.usertype, p.personNotes "
+ "FROM Person p JOIN User u ON p.personId = u.userPersonId "
+ "Where u.Active = 1")
})
public class User
{ ... }
我创建了一个名为BasicUserInfo
的类来包含我在select子句中返回的所有成员(只是一个只有成员的类,没有Json目的的方法)。
我试图让它发挥作用的方式是这样的:
List<BasicUserInfo> list = list(namedQuery(QueryNames.QUERY_USER_GET_ALL_USERS_BASIC_INFO));
但是,由于上面激活的最后一行出现错误,因此无法编译:
类型不匹配:无法从
List<User>
转换为List<UserBasicInfo>
如何使查询返回我想要的列表类型?或者甚至只是Object[]
的列表也有利于Json的目的。
答案 0 :(得分:0)
我最终做的是将查询更改为以下开头:
"select new com.myPackage.Users.UserBasicInfo(u.userId, p.personName, p.personMobile, p.personEmail, u.userStaus, u.usertype, p.personNotes) ...
类型需要有一个构造函数,它接受查询返回的参数。