即使我在HQL中使用适当的映射给出类和实体名称,Hibernate中的querysyntaxexception也是如此

时间:2015-06-26 05:27:45

标签: java hibernate

我正在进行休眠。我正在低于例外

org.hibernate.hql.ast.QuerySyntaxException: DBCDataSource is not mapped [from DBCDataSource where upper(datasourceType) = upper('BAC_MANAGEMENT')]

我在网上搜索并得到答案,因为在HQL中我们需要使用类名和属性名而不是表名和列名。查询是使用列名,所以我已经改变了它使用属性名称后,也dint去了。我已经在HIbernate.cfg.xml中检查了任何缺少的映射,但我发现映射是正确的。在下面找到ma代码。

previous query-->list =  session.createQuery("from DBCDataSource where upper(DATASOURCE_TYPE) = upper('" + type +"')").list();
DATASOURCE_TYPE is a column name

Modified to-->list =  session.createQuery("from DBCDataSource where upper(datasourceType) = upper('" + type +"')").list();
datasourceType is a propery name mapped to tat column.

实体类

@Entity
@Table(name="dict_db_ds")
public class DBCDataSource implements Serializable{
.
.
.

@Column(name = "DATASOURCE_TYPE")
    private String datasourceType;

}

hibernate.cfg.xml中

..
..
 <mapping class="com.hp.bto.bsmr.collection.dao.omi.DBCDataSource" /> 
..
..
我突然错过了吗?

请咨询..

谢谢。

1 个答案:

答案 0 :(得分:0)

你可以试试这个

 list =  session.createQuery("from DBCDataSource where "
              +"upper(datasourceType) =:type")
             .setParameter("type", type)
             .list();