我正在尝试使用Hibernate和HSQLDB.我尝试将教程改编为更新版本,因此可能存在问题.当我使用JUnit运行单元测试时会发生这种情况.
我正在使用HSQLDB 2.3.2和Hibernate(JPA)4.3.5.
我得到的错误是这样的:
16:40:16,802 DEBUG SQL:109 - 选择device0_.DEVICE_ID为DEVICE_I1_0_,device0_.DEVICE_FIRMWARE_VERSION为DEVICE_F2_0_,device0_.DEVICE_IMAGE为DEVICE_I3_0_,来自DEVICES device0_ limit?16:40:16,802 DEBUG SQL:109 - 选择device0_.DEVICE_ID为DEVICE_I1_0_,device0_.DEVICE_FIRMWARE_VERSION为DEVICE_F2_0_,device0_.DEVICE_IMAGE为DEVICE_I3_0_,来自DEVICES device0_ limit?16:40:16,802 DEBUG SQL:109 - 选择device0_.DEVICE_ID为DEVICE_I1_0_,device0_.DEVICE_FIRMWARE_VERSION为DEVICE_F2_0_,device0_.DEVICE_IMAGE为DEVICE_I3_0_,来自DEVICES device0_ limit?16:40:16,803 WARN SqlExceptionHelper:144 - SQL错误:-5501,SQLState:42501 16:40:16,803 WARN SqlExceptionHelper:144 - SQL错误:-5501,SQLState:42501 16:40:16,803错误SqlExceptionHelper:146 - 用户缺乏未找到权限或对象:设备16:40:16,803错误SqlExceptionHelper:146 - 用户缺少未找到的权限或对象:设备16:40:16,804错误gwt-log:81 - e:javax.persistence.PersistenceException:org.hibernate. exception.SQLGrammarException:无法准备语句javax.persistence.PersistenceException:org.hibernate.exception.SQLGrammarException:无法准备语句...引起:org.hibernate.exception.SQLGrammarException:无法准备语句...引起: java.sql.SQLSyntaxErrorException:user缺少未找到的权限或对象:DEVICES ...由以下原因引起:org.hsqldb.HsqlException:user缺少未找到的权限或对象:DEVICES ...
我的persistence.xml看起来像这样:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="testproject" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>testproject.server.domain.Device</class>
<exclude-unlisted-classes/>
<properties>
<!-- Database connection settings -->
<property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver" />
<property name="hibernate.connection.url" value="jdbc:hsqldb:file:/db/testdb" />
<property name="hibernate.connection.username" value="sa" />
<property name="hibernate.connection.password" value="" />
<!-- JDBC …Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的错误:我有一个使用Hibernate注释的类.一切都很好,直到我开始引入这样的日志记录:
@Entity
@Table(name = "GROUP_TABLE")
public class Group {
private static final Logger logger = LoggerFactory.getLogger(Group.class);
Run Code Online (Sandbox Code Playgroud)
产生的错误是:
[错误]引起:org.hibernate.MappingException:无法确定:org.slf4j.Logger的类型,在表:container,对于列:[org.hibernate.mapping.Column(logger)]
根据我的理解,静态字段在这种情况下应该没问题.那么为什么hibernate试图创建一个列"logger"?
我的依赖项是log4j 1.2.17,slf4j-api 1.7.7和slf4j-log4j12-1.7.7.
谢谢!