用的是 Hibernate 的本地查询 createsqlquery
select flight.status status1,oper.status status2
from APY_FLIGHTINFO flight
left join APY_OPERATIONLIST oper on flight.recordid=oper.recordid
where flight.recordid='5' order by flight.recordid
[09/15 14:15:49] [DEBUG] Loader: result row:
[09/15 14:15:49] [INFO] CharacterType: could not read column value from result set: STATUS; Column 'STATUS' not found.
[09/15 14:15:49] [DEBUG] JDBCExceptionReporter: could not read next row of results [select flight.status status1,oper.status status2 from APY_FLIGHTINFO flight left join APY_OPERATIONLIST oper on flight.recordid=oper.recordid where flight.recordid='5' order by flight.recordid]
java.sql.SQLException: Column 'STATUS' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1093)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488)
at org.hibernate.type.CharacterType.get(CharacterType.java:24)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:189)
at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract(CustomLoader.java:474)
at org.hibernate.loader.custom.CustomLoader$ResultRowProcessor.buildResultRow(CustomLoader.java:420)
at org.hibernate.loader.custom.CustomLoader.getResultColumnOrRow(CustomLoader.java:317)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:606)
at org.hibernate.loader.Loader.loadSingleRow(Loader.java:268)
at org.hibernate.impl.ScrollableResultsImpl.prepareCurrentRow(ScrollableResultsImpl.java:231)
select flight.status status1,oper.status status2
from APY_FLIGHTINFO flight
left join APY_OPERATIONLIST oper on flight.recordid=oper.recordid
where flight.recordid='5' order by flight.recordid
[09/15 14:15:49] [DEBUG] Loader: result row:
[09/15 14:15:49] [INFO] CharacterType: could not read column value from result set: STATUS; Column 'STATUS' not found.
[09/15 14:15:49] [DEBUG] JDBCExceptionReporter: could not read next row of results [select flight.status status1,oper.status status2 from APY_FLIGHTINFO flight left join APY_OPERATIONLIST oper on flight.recordid=oper.recordid where flight.recordid='5' order by flight.recordid]
java.sql.SQLException: Column 'STATUS' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1093)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488)
at org.hibernate.type.CharacterType.get(CharacterType.java:24)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:189)
at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract(CustomLoader.java:474)
at org.hibernate.loader.custom.CustomLoader$ResultRowProcessor.buildResultRow(CustomLoader.java:420)
at org.hibernate.loader.custom.CustomLoader.getResultColumnOrRow(CustomLoader.java:317)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:606)
at org.hibernate.loader.Loader.loadSingleRow(Loader.java:268)
at org.hibernate.impl.ScrollableResultsImpl.prepareCurrentRow(ScrollableResultsImpl.java:231)
select flight.status status1,oper.status status2 ...要么就是这个查询结果,Hibernate无法包装成对象!
Query query = session.createSQLQuery(strSQL);
result=query.list();
来查询?
select flight.status status1,oper.status status2
from APY_FLIGHTINFO flight
left join APY_OPERATIONLIST oper on flight.recordid=oper.recordid
where flight.recordid='5' order by flight.recordidflight 表中没有status 列。
String hql = "select flight.status AS 'status1',oper.status AS 'status2' from APY_FLIGHTINFO AS flight left join "+
"APY_OPERATIONLIST AS oper on flight.recordid=oper.recordid where flight.recordid='5' order by flight.recordid";
Session session = getSession();
PaginatedList pageList = new PaginatedList();
try
{
Query query = session.createSQLQuery(hql); int row = 0;
ScrollableResults sr = query.scroll();
sr.last();
if (sr.getRowNumber() > 0)
row = sr.getRowNumber() + 1; pageList.setPageTotal((int) Math.ceil((double) row
/ (double) pageSize));
query.setFirstResult(pageSize * (pageNumber - 1));
query.setMaxResults(pageSize);
pageList.setPageSize(pageSize);
pageList.setPageNum(pageNumber);
pageList.setStartRownum(pageSize * (pageNumber - 1));
pageList.setEndRownum((pageList.getStartRownum() + pageSize) - 1);
pageList.setRowTotal(row);
List<FlightAppElementsModel> list = new ArrayList<FlightAppElementsModel>();
Iterator<?> results = query.list().iterator();
......