[英]Why am I getting an HsqlException in my local TomEE 1.6?
org.hsqldb.HsqlException:用户缺少特权或找不到对象:ENRG
enrg是一个表名。 它在数据库中,我以root用户身份连接。 因此,此错误消息至少可以说是令人误解的。 由于我的应用程序使用的是Hibernate jar,我什至不明白为什么会看到这种情况。 根据我在Web上发现的信息,可能是在Eclipse中启动的本地TomEE 1.6的某些配置错误。 不过,我还没有弄清楚如何去做。
只是为了证明这不是SQL或权限问题:此代码因上述异常而失败:
Query q=entityManager.createNativeQuery("insert into enrg values (null, 'ws', null, 'test', 'notes');");
q.executeUpdate();
我复制此插入并将其粘贴到MySQL命令行客户端中,并且工作正常。 两种情况下的登录凭据都是相同的(root / root)。
异常位于此jar中:c:\\ tomee16 \\ lib \\ sqldb-2.3.0.jar
我在Hibernate 4中使用JPA 2.0。
persistence.xml中
<?xml version="1.0" encoding="UTF-8"?>
<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="default" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>my classess</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=yes&characterEncoding=utf8;" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="root" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
</properties>
</persistence-unit>
</persistence>
更新
Query q=entityManager.createNativeQuery("show tables;");
导致java.sql.SQLSyntaxErrorException: unexpected token: SHOW
。 我的应用程序不知道它正在与MySQL数据库通信。
另外,在启动时,还会出现以下警告:警告:jar'C:\\ javawork \\ webadmin.metadata.plugins \\ org.eclipse.wst.server.core \\ tmp0 \\ wtpwebapps \\ WebAdmin \\ WEB-INF \\ lib \\ hibernate -jpa-2.0-api-1.0.1.Final.jar'包含令人反感的类:javax.persistence.Entity。 它将被忽略。 警告:jar'C:\\ javawork \\ webadmin.metadata.plugins \\ org.eclipse.wst.server.core \\ tmp0 \\ wtpwebapps \\ WebAdmin \\ WEB-INF \\ lib \\ jboss-transaction-api_1.1_spec-1.0.1.Final .jar”包含令人反感的类:javax.transaction.Transaction。 它将被忽略。 2013年12月7日1:22:37 AM org.apache.openejb.config.ConfigurationFactory configureApplication
原来该应用程序从未连接到数据库。 通过更改服务器位置将数据源添加到tomee.xml使得可以建立连接。
更多信息: 如何验证实体管理器可以建立与数据库的连接?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.