Hibernate 查询语法异常,未映射表名
我正在使用HQL查询,请看下面的代码 实体类:Hibernate 查询语法异常,未映射表名,hibernate,Hibernate,我正在使用HQL查询,请看下面的代码 实体类: @Entity @Table(name = "COUNTRY") public class Country implements Serializable{ private long countryCode; private String countryName; 道: public List getCountryList(){ 列表结果列表=null; System.out.println(“in-dao”); Query Query=get
@Entity
@Table(name = "COUNTRY")
public class Country implements Serializable{
private long countryCode;
private String countryName;
道:
public List getCountryList(){
列表结果列表=null;
System.out.println(“in-dao”);
Query Query=getSession().createQuery(“来自国家/地区”);
resultList=query.list();
返回结果列表;
}
app context.xml:
<beans:property name="annotatedClasses">
<beans:list>
<beans:value>com.test.in.ergy.entity.Country</beans:value>
</beans:list>
</beans:property>
com.test.in.ergy.entity.Country
可能是什么问题HQL查询中的实体区分大小写 替换此项:
Query query = getSession().createQuery(" from country ctry ");
为此:
Query query = getSession().createQuery(" from Country ctry ");
参考手册第14.1章摘录:
除了Java类和属性的名称之外,查询
不区分大小写。所以选择和选择是一样的
选择,但org.hibernate.eg.FOO不是org.hibernate.eg.FOO,并且
foo.barSet不是foo.barSet
关于我将查询从HQL更改为SQL及其工作方式。 问题如下
String queryString = " select ctry.COUNTRY_CODE, ctry.COUNTRY_NAME from METRICS.COUNTRY ctry ";
try {
SQLQuery query = getSession().createSQLQuery(queryString);
resultList = query.list();
}
如果您使用createQueryfromQuery类,则Hibernate区分大小写,但与您尝试检索的类名有关…而不是与表有关 比如说 Query=session.createQuery(“从飞机”); 如果类的名称为“飞机”,则将起作用 Query=session.createQuery(“从飞机”);
无论DB中的表名是否为Planet,它都将失败,因为它将查找类,而不是表我的查询使用的是Country,因为我给出的类名是Country。不知道发生了什么事。。无法修复此问题是否可以检查表名是否全部为大写?实际的mysql表名?是的,hibernate是区分大小写的
String queryString = " select ctry.COUNTRY_CODE, ctry.COUNTRY_NAME from METRICS.COUNTRY ctry ";
try {
SQLQuery query = getSession().createSQLQuery(queryString);
resultList = query.list();
}