【发布时间】:2014-08-20 10:14:09
【问题描述】:
我正在使用 Spring 3 和 Hibernate 3。我正在使用 DAO 设计模式并使用 HQL 来查询数据库。但是,当搜索某个字段不存在的数据时,出现以下异常:
org.hsqldb.HsqlException: user lacks privilege or object not found: ADDRESS2
我正在使用 Liquidbase 来管理创建表的数据库 XML 模式。下面是示例代码:
@Entity
@Table(name = "message")
public class Message() {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(length = 100, nullable = false)
private String address;
public Message() {
}
// getters and setters
}
DAO 使用以下 HQL:
getHibernateTemplate().find("FROM Message m WHERE m.address = address2");
正在设置以下属性:
jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver
jdbc.url=jdbc:hsqldb:mem:testdb'shutdown=true
jdbc.username=sa
jdbc.password=
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=validate
我找不到解决方案。我可以成功插入一条记录,也可以使用相同的 HQL 查询来查找具有已保存实际值的对象,但问题在于查找不存在的值。
【问题讨论】:
-
有同样的问题,但对我来说,解决方案只是添加正确的方言。 (以前有mysql),因为我已经重新连接到那个。谢谢
标签: java spring hibernate hql hsqldb