2010-09-27 14 views
20

que tiene una fuente de datos en memoria:HSQL base de datos en la memoria como fuente de datos JPA

java.sql.Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "sa", "");    
emf = Persistence.createEntityManagerFactory("manager"); 

Pero ahora estoy atascado. Quiero usarlo como fuente de datos JPA en una aplicación J2SE. Recorrí toda la web, pero toda la información está relacionada con J2EE.

<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="manager"> 

     <jta-data-source>/*What to enter here?*/</jta-data-source> 

     <properties> 

      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect" /> 
      <property name="hibernate.hbm2ddl.auto" value="create-drop" /> 

     </properties> 

    </persistence-unit> 

</persistence> 

Respuesta

55

/* Qué a entrar aquí? */

Bueno, nada. En un entorno Java SE, tendrá que usar el grupo de conexiones integrado de su proveedor JPA y la configuración se verá así:

<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="manager" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <class>com.acme.Foo</class> 
    ... 
    <properties> 
     <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/> 
     <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:testdb"/> 
     <property name="javax.persistence.jdbc.user" value="sa"/> 
     <property name="javax.persistence.jdbc.password" value=""/> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/> 
     <property name="hibernate.hbm2ddl.auto" value="update"/> 
    </properties> 
    </persistence-unit> 
</persistence> 
+0

Gracias, funciona. Ahora tengo otro problema: http://stackoverflow.com/questions/3805478/internal-hsql-database-complains- about -privileges –

+0

@Bart De nada. –

+1

@Bart BTW, la forma más común de reconocer una buena respuesta es votando hacia arriba;) Ver [¿Aceptar la respuesta sin subir la votación?] (Http://meta.stackexchange.com/questions/686/accepting-withour-without-upvoting). –

Cuestiones relacionadas