r755 - in h2j8test: . src/main/java/org/test
Author: echatellier Date: 2015-02-02 11:50:35 +0000 (Mon, 02 Feb 2015) New Revision: 755 Url: http://forge.nuiton.org/projects/sandbox/repository/revisions/755 Log: Update test with hibernate Added: h2j8test/src/main/java/org/test/EntityA.java Modified: h2j8test/ h2j8test/data-backup.sql.gz h2j8test/pom.xml h2j8test/src/main/java/org/test/H2J8Test.java Property changes on: h2j8test ___________________________________________________________________ Added: svn:ignore + .settings .classpath .project Modified: h2j8test/data-backup.sql.gz =================================================================== (Binary files differ) Modified: h2j8test/pom.xml =================================================================== --- h2j8test/pom.xml 2015-02-02 09:56:32 UTC (rev 754) +++ h2j8test/pom.xml 2015-02-02 11:50:35 UTC (rev 755) @@ -8,9 +8,29 @@ <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> - <version>1.4.185</version> + <version>1.3.176</version> </dependency> <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-core</artifactId> + <version>4.3.7.Final</version> + </dependency> + <dependency> + <groupId>org.hibernate.javax.persistence</groupId> + <artifactId>hibernate-jpa-2.1-api</artifactId> + <version>1.0.0.Final</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-c3p0</artifactId> + <version>4.3.7.Final</version> + </dependency> + <dependency> + <groupId>org.hibernate</groupId> + <artifactId>hibernate-ehcache</artifactId> + <version>4.3.7.Final</version> + </dependency> + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> Added: h2j8test/src/main/java/org/test/EntityA.java =================================================================== --- h2j8test/src/main/java/org/test/EntityA.java (rev 0) +++ h2j8test/src/main/java/org/test/EntityA.java 2015-02-02 11:50:35 UTC (rev 755) @@ -0,0 +1,21 @@ +package org.test; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Entity +public class EntityA { + + @Id + public long id; + + public String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} Property changes on: h2j8test/src/main/java/org/test/EntityA.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: h2j8test/src/main/java/org/test/H2J8Test.java =================================================================== --- h2j8test/src/main/java/org/test/H2J8Test.java 2015-02-02 09:56:32 UTC (rev 754) +++ h2j8test/src/main/java/org/test/H2J8Test.java 2015-02-02 11:50:35 UTC (rev 755) @@ -1,34 +1,73 @@ package org.test; import java.io.File; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.Statement; +import java.util.List; +import java.util.Properties; +import org.hibernate.SQLQuery; +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.Transaction; +import org.hibernate.boot.registry.StandardServiceRegistry; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; + public class H2J8Test { + protected static Configuration getConfiguration(boolean create) { + Configuration config = new Configuration(); + config.setProperty("hibernate.connection.username", "sa"); + config.setProperty("hibernate.connection.password", "sa"); + config.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); + config.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); + config.setProperty("hibernate.current_session_context_class", "thread"); + config.setProperty("hibernate.connection.url", "jdbc:h2:./test_" + System.currentTimeMillis()); + // + ";FILE_LOCK=file;DEFAULT_LOCK_TIMEOUT=1000;DB_CLOSE_DELAY=0;LOCK_MODE=3;TRACE_LEVEL_FILE=0;TRACE_LEVEL_SYSTEM_OUT=0;LOG=1"); + + if (create) { + config.setProperty("hibernate.hbm2ddl.auto", "create"); + } + + config.addAnnotatedClass(EntityA.class); + return config; + } public static void main(String[] args) throws Exception { - Class.forName("org.h2.Driver"); - - final File f = createDb(); + //Class.forName("org.h2.Driver"); + + final File f = File.createTempFile("h2test-", ".sql.gz"); + f.deleteOnExit(); + Thread t = new Thread() { public void run() { try { - restoreDb(f); + createDb2(f); } catch (Exception e) { e.printStackTrace(); } }; }; - t.run(); + t.start(); t.join(); + + Thread t2 = new Thread() { + public void run() { + try { + restoreDb2(f); + } catch (Exception e) { + e.printStackTrace(); + } + }; + }; + t2.start(); + t2.join(); } - private static File createDb() throws Exception { + /*private static File createDb() throws Exception { - Connection conn = DriverManager.getConnection("jdbc:h2:./test_" + System.currentTimeMillis()); + JdbcConnectionPool cp = JdbcConnectionPool.create( + "jdbc:h2:./test_" + System.currentTimeMillis(), "sa", "sa"); + Connection conn = cp.getConnection(); //DriverManager.getConnection("jdbc:h2:./test_" + System.currentTimeMillis()); Statement stat = conn.createStatement(); // this line would initialize the database @@ -46,33 +85,81 @@ // extract Statement stat2 = conn.createStatement(); - File file = File.createTempFile("h2test-", ".sql"); - stat2.execute("SCRIPT TO '" + file.getAbsolutePath() + "'"); + File file = File.createTempFile("h2test-", ".sql.gz"); + stat2.execute("SCRIPT TO '" + file.getAbsolutePath() + "' COMPRESSION GZIP"); //conn.close(); return file; + }*/ + + private synchronized static File createDb2(File file) throws Exception { + + Configuration config1 = getConfiguration(true); + Properties properties = config1.getProperties(); + StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); + StandardServiceRegistry standardServiceRegistry = builder.applySettings(properties).build(); + SessionFactory hibernateFactory = config1.buildSessionFactory(standardServiceRegistry); + + Session session = hibernateFactory.openSession(); + Transaction tx = session.beginTransaction(); + + EntityA a = new EntityA(); + a.setName("test1"); + session.persist(a); + tx.commit(); + + SQLQuery query = session.createSQLQuery("SCRIPT TO '" + file.getAbsolutePath() + "' COMPRESSION GZIP"); + query.list(); + //tx.commit(); + session.close(); + hibernateFactory.close(); + + return file; } - private static void restoreDb(File file) throws Exception { + /*private static void restoreDb(File file) throws Exception { - Connection conn = DriverManager.getConnection("jdbc:h2:./test2_" + System.currentTimeMillis()); + JdbcConnectionPool cp = JdbcConnectionPool.create( + "jdbc:h2:./test_" + System.currentTimeMillis(), "sa", "sa"); + Connection conn = cp.getConnection(); //DriverManager.getConnection("jdbc:h2:./test2_" + System.currentTimeMillis()); Statement stat = conn.createStatement(); - //stat.execute("RUNSCRIPT FROM '" + file.getAbsolutePath() + "' COMPRESSION GZIP"); - stat.execute("RUNSCRIPT FROM '" + file.getAbsolutePath() + "'"); + stat.execute("RUNSCRIPT FROM '" + file.getAbsolutePath() + "' COMPRESSION GZIP"); //stat.close(); // test list Statement stat2 = conn.createStatement(); ResultSet rs; - rs = stat2.executeQuery("select * from fisheryregion"); + rs = stat2.executeQuery("select * from test"); while (rs.next()) { System.out.println("test2:" + rs.getString("name")); } stat.close(); conn.close(); + }*/ + + private synchronized static void restoreDb2(File file) throws Exception { + + Configuration config1 = getConfiguration(false); + Properties properties = config1.getProperties(); + StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); + StandardServiceRegistry standardServiceRegistry = builder.applySettings(properties).build(); + SessionFactory hibernateFactory = config1.buildSessionFactory(standardServiceRegistry); + + Session session = hibernateFactory.openSession(); + + SQLQuery query = session.createSQLQuery("RUNSCRIPT FROM '" + file.getAbsolutePath() + "' COMPRESSION GZIP"); + query.executeUpdate(); + + + Transaction tx = session.beginTransaction(); + List<EntityA> l = session.createCriteria(EntityA.class).list(); + System.out.println("result = " + l.get(0).getName()); + tx.commit(); + session.close(); + hibernateFactory.close(); } }
participants (1)
-
echatellier@users.nuiton.org