我参考了Configuring data source - tomee.xml, persistence.xml。除了持久性单元名称和jta数据源名称之外,我的persistence.xml
与上面完全相同
我的tomee.xml
也类似
<Resource id="****DB" type="javax.sql.DataSource">
UserName ××××
Password ××××
JdbcDriver com.mysql.jdbc.Driver
JdbcUrl jdbc:mysql://localhost/××××
JtaManaged true
connectionProperties zeroDateTimeBehavior=convertToNull;useUnicode=yes;characterEncoding=UTF-8
</Resource>
我还通过枚举em.getEntityManagerFactory().getProperties()
进行了验证,发现Platform:OpenJPA JDBC Edition: MySQL Database
。
但是当我尝试em.createNamedQuery
时......我得到了org.hsqldb.HsqlException: user lacks privilege or object not found
。因此,OpenJPA似乎使用默认的hsqldb,尽管设置。
服务器日志中的sql语句被复制并粘贴到phpmyadmin并运行。我甚至删除了connectionProperties
中的tomee.xml
,但仍无效。为什么呢?
答案 0 :(得分:0)
我的错:mysql-connector-java.jar不在tomee / lib文件夹中。但我认为应该抱怨而不是回到使用hsqldb。