带有SqlResultSetMapping和EntityResult的createNativeQuery返回原始结果集

问题描述

我得到了地图

@sqlresultsetmapping(
        name = "FriendResultSet",entities = {
                @EntityResult(
                        entityClass = User.class,fields={
                                @FieldResult(name="id",column="id"),@FieldResult(name="name",column="name"),}
                ),@EntityResult(
                        entityClass = Friendship.class,fields={
                                @FieldResult(name="user_a",column="user_a"),@FieldResult(name="user_b",column="user_b"),@FieldResult(name="status",column="status"),}
)
实体中的

字段具有相同的名称,但是例如,我添加了FieldResult的注释。 另外,我在实体中还有其他未在此处选择的字段。 查询

Query query = em.createNativeQuery(
                "SELECT id,name,user_a,user_b,status FROM soc_user as u JOIN friendship as f ON f.user_a = ?1 OR f.user_b = ?1 " +
                       "WHERE u.id <> ?1","FriendResultSet");
query = query.setParameter(1,u.getId());

作为结果集,我得到了几行原始值

List<Object[]> results = query.getResultList();
results.get(0) // [1,"name",1,2,1]

但是据我了解,应该是

results.get(0) // [User{1,"name"},Friendship{1,1}]

我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)