java - 如何在 JavaEE 应用程序中使用 Derby Embedded + JPA 2.0 + Hibernate 设置环境?

标签 java spring hibernate jpa jboss

我有一个 JavaEE 应用程序,我需要在其中使用嵌入式数据库(在内存中)。我不想在 JBoss 中为此数据库配置任何内容。因此,我不想使用 JBoss 数据源。

我尝试了多种不同的设置方式,但到目前为止都没有奏效。这是我当前的设置:

  • JBoss:7.1.1.Final
  • Derby :10.10.1.1
  • hibernate :4.1.0.Final

Maven 中的依赖项:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
    <scope>provided</scope>
</dependency> 
<dependency>
    <groupId>org.apache.derby</groupId>
    <artifactId>derby</artifactId>
    <version>10.10.1.1</version>
</dependency>
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-entitymanager</artifactId>
  <version>4.1.0.Final</version>
  <scope>provided</scope>      
</dependency>    
<dependency>
    <groupId>org.hibernate.javax.persistence</groupId>
    <artifactId>hibernate-jpa-2.0-api</artifactId>
    <version>1.0.1.Final</version>
    <scope>provided</scope>              
</dependency> 

持久性.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="TributarioEmbarcado" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>

        <class>com.sysmo.client.tributario.baseEmbarcada.model.LoginEmbarcado</class>
        <class>com.sysmo.client.tributario.baseEmbarcada.model.ConfiguracaoEmbarcado</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" />
            <property name="hibernate.connection.driver_class" value="org.apache.derby.jdbc.EmbeddedDriver" />
            <property name="hibernate.connection.url"   value="jdbc:derby:memory:sysmo_tributario_embarcado;create=true" />
            <property name="hibernate.connection.username" value="admin" />
            <property name="hibernate.connection.password" value="passwd" />
        </properties>
    </persistence-unit> 
</persistence>

我尝试使用 javax.persistence.* 属性,但似乎无法与特定于 hibernate 的提供程序 (org.hibernate.ejb.HibernatePersistence) 一起使用。

使用该配置,在 JBoss 上进行部署时会发生此错误:

ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 4) No suitable >driver found for jdbc:derby:memory:sysmo_tributario_embarcado;create=true

类 org.apache.derby.jdbc.EmbeddedDriver 位于我在 maven 中配置的 Derby 包中。我做错了什么?

最佳答案

你可以试试这个:

`

        <property name="hibernate.connection.driver_class" value="org.apache.derby.jdbc.EmbeddedDriver" />
        <property name="hibernate.connection.url"   value="jdbc:derby:dbname;create=true" />
        <property name="hibernate.connection.username" value="" />
        <property name="hibernate.connection.password" value="" />
        <!-- Hibernate configuration -->
        <property name="hibernate.hbm2ddl.auto"       value="create-drop"/>
    </properties>

`

它对我有用。

关于java - 如何在 JavaEE 应用程序中使用 Derby Embedded + JPA 2.0 + Hibernate 设置环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18410865/

相关文章:

java - 将包含空格和数字的字符串转换为仅包含数字的 int 数组

java - maria db 和 hibernate 排序规则的非法混合

java - 处理数据库约束 hibernate

java - 当我尝试将 Socket 设置为 255.255.255.255 时抛出异常

java - 关闭 BufferedReader

spring - GeoPoint 与 Spring Data ElasticSearch 给出错误 : QueryParsingException[field [location] is not a geo_point field]

java - 有没有办法通过 jndi 在 <util :properties/> tag? 中传递文件位置

java - Http 基本身份验证不适用于 Spring WS 和 WebServiceTemplate 凭据

java - 当两个不相关的表都有复合主键时,Hibernate 连接两个表

java - JTable.removeColumn() 方法抛出异常