【发布时间】:2018-05-27 04:25:15
【问题描述】:
我正在尝试使用下面的命名查询加入三个表:Student、BorrowedBook、Books
List< Student > stuList= new ArrayList< Student >( );
StringBuilder sb = new StringBuilder( );
sb.append( "select s.studentId, s.name, s.lastName, b.name " );
sb.append( "from student s " );
sb.append( "inner join borrowedbook c on
s.studentId = c.studentId " );
sb.append( "inner join books b on c.bookId = b.bookId " );
Query query = getSession( ).createSQLQuery( sb.toString( ) );
query.setProperties( Student.class );
List< Object[] > searchResults = query.list( );
但是,当我在调试模式下的 searchResults 中检查 b.name 的值时,它会得到 s.name 的值。意思是,b.name 与 s.name 具有相同的名称,即使它应该有自己的名称。我不知道这里有什么问题,我什至给它们起了别名来区分它们。
【问题讨论】:
-
您提到您在此处尝试使用别名,但我在任何地方都没有看到这种尝试。无论如何,事实上这是解决您问题的一种方法。
标签: java mysql sql named-query