我正在学习Java EE,目前正在尝试使用带有Tomee服务器的derby数据库。
我在(拓扑路径)/conf/tomee中声明了我的数据源.xml如下所示:
<Resource id="IsiDrive" type="DataSource">
JdbcDriver = org.apache.derby.jdbc.EmbeddedDriver
JdbcUrl = jdbc:derby://localhost:1527/isidrive
JtaManaged true
</Resource>
位于(project-path)/src/META-INF/persistence.xml中的persistence . XML文件包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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">
<persistence-unit name="IsiDrive">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>IsiDrive</jta-data-source>
<class>model.Banana</class>
</persistence-unit>
当我启动服务器并尝试使用简单方法访问数据库时:
public class Controller {
@PersistenceContext(unitName = "IsiDrive")
EntityManager em;
public void test() {
Query q = em.createQuery("SELECT u FROM Banana u");
List<Banana> userList = q.getResultList(); //error
}
}
我得到了以下日志:
Starting OpenJPA 2.3.0-nonfinal-1540826
Using dictionary class "org.apache.openjpa.jdbc.sql.HSQLDictionary" (HSQL Database Engine 2.3.0 ,HSQL Database Engine Driver 2.3.0).
Connected to HSQL Database Engine version 2.2 using JDBC driver HSQL Database Engine Driver version 2.3.0.2
PM org.apache.openejb.core.transaction.EjbTransactionUtil handleSystemException
EjbTransactionUtil.handleSystemException: user lacks privilege or object not found: BANANA {SELECT t0.id, t0.title FROM Banana t0} [code=-5501, state=42501]
<openjpa-2.3.0-nonfinal-1540826-r422266:1542644 fatal general error> org.apache.openjpa.persistence.PersistenceException: user lacks privilege or object not found: BANANA {SELECT t0.id, t0.title FROM Banana t0} [code=-5501, state=42501]
FailedObject: SELECT u FROM Banana u [java.lang.String]
我不明白为什么Tomee尝试使用HSQL,因为我想使用Derby并将我的数据源声明为它?
编辑:即使我尝试使用HSQL数据库或MYSQL数据库,也会发生错误。它总是一样的。
检查你的日志中的“自动调整”信息,它可以帮助你找到问题
好吧,没关系。我不应该把我的数据源放在(tomEE-path)/conf/tomee.xml
中,而是放在(myworkspace-path)/Servers/Tomcat v7.0 Serverlocalhost-config/tomee.xml
中。愚蠢的错误,Eclipse和TomEE都不会在persistence.xml
中生成关于数据源的错误…
所以我已经在谷歌和stack上搜索过了,我找到了一堆有同样错误的人,但是没有一个解决方案能解决我的问题。 我正在使用的: Java 8 JavaEE7 TomEE 7.0 M3 JPA 2.0 ORM 1.0 Postgres公司 我认为问题在于命名查询,也许还有ManyToMany关系。 User.java SystemRole.java 持久性.xml user-orm.xml context
我遵循了以下基本的Spring批量教程https://spring.io/guides/gs/batch-processing/ . > 我正在使用IntelliJ 14并创建了一个Spring批处理项目 我在用Mavin。我还有pom。xml文件。 Mvn clean install运行良好,即使应用程序。java告诉我“无法自动连线。找不到JdbcTemplate类型的bean”@Autowi
我在hsqldb测试中遇到了一点问题。 我在import.sql中添加了我需要的所有内容,它工作得很好。 我创建了一个类: 但是我得到了这个错误:
我发现这个错误在整个互联网上出现了很多次,但我根本没有找到适合我的情况的解决方案。我有一个 HSQL 数据库 - 我已成功连接到数据库中的一个表。我继续在数据库中创建另一个表 - 根据需要修改完全相同的 Java 代码,但它带来了错误:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象:USER。 我发现在我的文件存储脚本中,PRODUCT表创建的代码就在那
项目可以编译,但是当我尝试: 或者我试试: 返回错误: javax.persistence.PersistenceException:org.hibernate.exception.SQLGrammarException:无法准备语句 更新: 根异常是: 原因: 组织.hsqldb.Hsql异常: 用户缺少特权或找不到对象: 供应商信息 我尝试从server.xml中删除池(资源),但项目没有失败