Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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 在hibernate中使用addEntity获取表的特定列_Java_Mysql_Hibernate - Fatal编程技术网

Java 在hibernate中使用addEntity获取表的特定列

Java 在hibernate中使用addEntity获取表的特定列,java,mysql,hibernate,Java,Mysql,Hibernate,我熟悉Java,但对ORM和Hibernate非常陌生 我使用以下查询来获取hibernate中表的所有列的结果集 (List<Neighborhood>)session.createSQLQuery("SELECT * FROM Neighborhood").addEntity(Neighborhood.class).list(); 编辑: 在@scaryWombat的建议之后,又有两个尝试性的查询。两者都给出了相同的例外 首先 第二 String sql = "SELECT n

我熟悉Java,但对ORM和Hibernate非常陌生

我使用以下查询来获取hibernate中表的所有列的结果集

(List<Neighborhood>)session.createSQLQuery("SELECT * FROM Neighborhood").addEntity(Neighborhood.class).list();
编辑:

在@scaryWombat的建议之后,又有两个尝试性的查询。两者都给出了相同的例外

首先

第二

String sql = "SELECT neighborhoodName,educationYouth FROM Neighborhood";
SQLQuery query = session.createSQLQuery(sql);
query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
List results = query.list();
编辑2:

在@Tehmina的解决方案之后,我得到了一个错误-
java.sql.SQLException:Column'educationYouth'找不到
,因为educationYouth是类名为“educationYouth”的对象。 在邻居表中,没有名为educationYouth的列,而是educationYouth类中的所有列。

试试这个

(List<Neighborhood>)session.createSQLQuery("SELECT * FROM Neighborhood").list();
(List)session.createSQLQuery(“从邻居中选择*).List();
为了避免使用ResultSetMetadata的开销,或者为了更明确地显示返回的内容,可以使用addScalar():

(List)session.createSQLQuery(“从邻居中选择*).addScalar(“邻居名称”,Hibernate.STRING)。addScalar(“educationYouth”,Hibernate.STRING);
或者试试这个 Hibernate会自动将数据转换为适当的类型。自动转换并非在所有情况下都有效,在这种情况下,我们有一个重载版本的addScalar():

SQLQuery q=session.createSQLQuery(“从邻居中选择*);
q、 addScalar(“邻居名称”);
q、 addScalar(“教育青年”);
列表行=q.List();
对于(对象[]行:行){
System.out.println(行[0]+“”+行[1]);
别忘了签入hibernate配置文件

<!--hibernate.cfg.xml -->
<property name="show_sql">true</property>

真的

我希望它能解决您的错误。

不要尝试使用
邻里
类作为entitysee不,它不起作用。我得到了相同的异常。请显示您修改的代码。您的列名正确吗?也许
邻里
?嗨@Tehmina,谢谢您,我认为您的第二个解决方案会起作用。我实际上得到了一个错误,但这是因为我有不完整的信息。实际上“educationYouth”是一个单独的类。类名是“educationYouth”。您知道在这种情况下需要做什么修改吗?欢迎@denis,只需删除q.addScalar(“邻里名称”)之后的所有内容;并添加以下代码列表名称=q.List();System.out.println(名称);
(List<Neighborhood>)session.createSQLQuery("SELECT * FROM Neighborhood").list();
(List<Neighborhood>)session.createSQLQuery("SELECT * FROM Neighborhood").addScalar("neighborhoodName", Hibernate.STRING).addScalar("educationYouth", Hibernate.STRING);
SQLQuery q = session.createSQLQuery("SELECT * FROM Neighborhood");        
    q.addScalar("neighborhoodName");    
    q.addScalar("educationYouth");   
     List<Object[]> rows = q.list();
for (Object[] row : rows) {
    System.out.println(row[0] + " " + row[1] );
<!--hibernate.cfg.xml -->
<property name="show_sql">true</property>