Java 在Hibernate中使用动态选择查询

Java 在Hibernate中使用动态选择查询,java,sql,hibernate,Java,Sql,Hibernate,我正在使用Hibernate4.2。 我希望我的select查询使用相同的实体类返回动态列。 例如 案例1:- 案例2:- session.createSQLQuery("select id , name,address from customer").addEntity(Customer.class).list(); 这是不可能的,它给出了案例1的错误 org.hibernate.exception.GenericJDBCException: could not execute query

我正在使用Hibernate4.2。 我希望我的select查询使用相同的实体类返回动态列。 例如 案例1:-

案例2:-

session.createSQLQuery("select id , name,address from customer").addEntity(Customer.class).list();
这是不可能的,它给出了案例1的错误

org.hibernate.exception.GenericJDBCException: could not execute query
 at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
 at org.hibernate.loader.Loader.doList(Loader.java:2223)
 at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
 at org.hibernate.loader.Loader.list(Loader.java:2099)

我想对这两个查询使用相同的ORM。

那么这里的问题是什么?那么你想说什么?我告诉我们您正在使用Hibernate 4.2,或者这是一个问题?堆栈跟踪的其余部分(您选择不发布)应该解释查询的错误。也就是说,省略字段很可能不会带来任何显著的性能提升,但会破坏Customer类的不变量。只需使用HQL:
从客户c中选择c
org.hibernate.exception.GenericJDBCException: could not execute query
 at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
 at org.hibernate.loader.Loader.doList(Loader.java:2223)
 at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
 at org.hibernate.loader.Loader.list(Loader.java:2099)