2010-09-27 6 views
20

Ho una fonte di dati in-memory:Utilizzando HSQL database in memoria, come APP datasource

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

Ma ora mi sono bloccato. Voglio usarlo come sorgente dati JPA in un'applicazione J2SE. Ho setacciato tutto il web ma tutte le informazioni sono relative a 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> 

risposta

55

/* Cosa entrare qui? */

Beh, niente. In un ambiente Java SE, dovrai utilizzare il pool di connessioni integrato dal tuo provider JPA e il setup sarà il seguente:

<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

Grazie, funziona. Ora ho un altro problema: http://stackoverflow.com/questions/3805478/internal-hsql-database-complains-about-privileges –

+0

@Bart Prego. –

+1

@Bart BTW, il modo comune per riconoscere una buona risposta è lo upvoting;) Vedi [Accettare la risposta senza upvoting?] (Http://meta.stackexchange.com/questions/686/accepting-answer-without-upvoting). –

Problemi correlati