Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加法不适用于自联接_Java_Mysql_Hibernate - Fatal编程技术网

Java 加法不适用于自联接

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"

有人能告诉我为什么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",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)