Java 加法不适用于自联接
有人能告诉我为什么addEntity不能从alias中识别单独的列吗?父对象和子对象都只获取子对象值。父字段被子字段覆盖 若我在select语句中首先保留Java 加法不适用于自联接,java,mysql,hibernate,Java,Mysql,Hibernate,有人能告诉我为什么addEntity不能从alias中识别单独的列吗?父对象和子对象都只获取子对象值。父字段被子字段覆盖 若我在select语句中首先保留pr.*,那个么它在两个对象中都取父值 我的代码如下 String sql="select ch.*,pr.* from users as ch inner join users as pr on ch.parent_id=pr.id"; 质疑 query=session.createSQLQuery(sql).addEntity("ch"
pr.*,那个么它在两个对象中都取父值
我的代码如下
String sql="select ch.*,pr.* from users as ch inner join users as pr on ch.parent_id=pr.id";
质疑
query=session.createSQLQuery(sql).addEntity("ch",UserDTO.class).addEntity("pr",UserDTO.class);
List<Object> result=query.list();
Object[] objects = (Object[])result.get(0);
UserDTO child=(UserDTO)objects[0];
UserDTO parent=(UserDTO)objects[1];
它对我有用选择{ch.},{pr.},我使用hibernate 4.3是的,我用错了,最后它对我也有用。Query uery=DB.currentSession().createSQLQuery(sql.toString()).addEntity(“cr”,ConnectionRequestDTO.class)。addEntity(“fu”,UserDTO.class)。addEntity(“tu”,UserDTO.class)。addEntity(“m”,MessageDTO.class)。addEntity(“qs”addEntity(“ms”,MerchantShareDTO.class.).addScalar(“messageCount”).addScalar(“lastMessage”);我使用的是加法而不是“addScalar”。嘿@PiyushAghera你是如何修复这个错误的?我也面临同样的问题。我在做一个自连接,我把.加法的顺序导致了不想要的结果。我正在使用Hibernate5.1。ThanksIt为我工作选择{ch.},{pr.},我使用hibernate 4.3是的,我用错了,最后它也为我工作。Query uery=DB.currentSession().createSQLQuery(sql.toString()).addEntity(“cr”,ConnectionRequestDTO.class)。addEntity(“fu”,UserDTO.class)。addEntity(“tu”,UserDTO.class)。addEntity(“m”,MessageDTO.class)。addEntity(“qs”addEntity(“ms”,MerchantShareDTO.class.).addScalar(“messageCount”).addScalar(“lastMessage”);我使用的是加法而不是“addScalar”。嘿@PiyushAghera你是如何修复这个错误的?我也面临同样的问题。我在做一个自连接,我把.加法的顺序导致了不想要的结果。我正在使用Hibernate5.1。谢谢
sess.createSQLQuery("SELECT {cat.*}, {mother.*} FROM CATS c, CATS m WHERE c.MOTHER_ID = c.ID")
.addEntity("cat", Cat.class)
.addEntity("mother", Cat.class)