【发布时间】:2025-11-24 00:00:02
【问题描述】:
在尝试运行 JPA 应用程序时,我得到:
[EL Fine]: 2014-07-09 16:55:52.532--Thread(Thread[http-bio-8080-exec-6,5,main])--Detected database platform: org.eclipse.persistence.platform.database.HSQLPlatform
这不是正确的平台。 (应该是 Oracle 瘦客户端)。这 在另一台机器上签出时相同的项目工作正常。仅有的 我们可以检测到的差异是 jdk 版本(我的版本是 13 和 60)。
My Persistance.xml looks like:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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="JPA_DatabasePU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>wellsDB</non-jta-data-source>
<class>my.domain.jpaDatabase.entities.Fred.Feature</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:user@//db.domain.my:1521/inst"/>
<property name="javax.persistence.jdbc.user" value="username"/>
<property name="javax.persistence.jdbc.password" value="password"/>
<property name="eclipselink.logging.level" value="FINEST"/>
</properties>
</persistence-unit>
</persistence>
我错过了什么??
【问题讨论】:
-
这是针对什么应用服务器运行的?使用 eclipselink 默认持久性提供程序告诉它使用应用程序服务器进行连接。它是针对不同的服务器运行的,还是针对其部署的服务器的配置与其他机器不同?
-
检查,如果您没有在指向 hsql 数据库的应用服务器上配置 wellsDB 数据源。
-
感谢您的回复。我在 Tomee 上运行它。不,没有 wellsDB 指向 hsql
-
-
您是如何获得 EntityManagerFactory 实例的?您是否传递了可能无意中覆盖persistence.xml 属性的属性?对其中一个答案的评论表明,当您删除 non-jta-data-source 标记时,仍会使用数据源,因此我相信以某种方式注入了属性或数据源
标签: java spring jpa eclipselink