Initial commit
This commit is contained in:
50
src/main/java/jpa/EntityManagerHelper.java
Normal file
50
src/main/java/jpa/EntityManagerHelper.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package jpa;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.EntityManagerFactory;
|
||||
import jakarta.persistence.Persistence;
|
||||
|
||||
public class EntityManagerHelper {
|
||||
|
||||
private static final EntityManagerFactory emf;
|
||||
private static final ThreadLocal<EntityManager> threadLocal;
|
||||
|
||||
static {
|
||||
emf = Persistence.createEntityManagerFactory("dev");
|
||||
threadLocal = new ThreadLocal<EntityManager>();
|
||||
}
|
||||
|
||||
public static EntityManager getEntityManager() {
|
||||
EntityManager em = threadLocal.get();
|
||||
|
||||
if (em == null) {
|
||||
em = emf.createEntityManager();
|
||||
threadLocal.set(em);
|
||||
}
|
||||
return em;
|
||||
}
|
||||
|
||||
public static void closeEntityManager() {
|
||||
EntityManager em = threadLocal.get();
|
||||
if (em != null) {
|
||||
em.close();
|
||||
threadLocal.set(null);
|
||||
}
|
||||
}
|
||||
|
||||
public static void closeEntityManagerFactory() {
|
||||
emf.close();
|
||||
}
|
||||
|
||||
public static void beginTransaction() {
|
||||
getEntityManager().getTransaction().begin();
|
||||
}
|
||||
|
||||
public static void rollback() {
|
||||
getEntityManager().getTransaction().rollback();
|
||||
}
|
||||
|
||||
public static void commit() {
|
||||
getEntityManager().getTransaction().commit();
|
||||
}
|
||||
}
|
||||
42
src/main/java/jpa/JpaTest.java
Normal file
42
src/main/java/jpa/JpaTest.java
Normal file
@@ -0,0 +1,42 @@
|
||||
package jpa;
|
||||
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.EntityTransaction;
|
||||
|
||||
public class JpaTest {
|
||||
|
||||
|
||||
private EntityManager manager;
|
||||
|
||||
public JpaTest(EntityManager manager) {
|
||||
this.manager = manager;
|
||||
}
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
EntityManager manager = EntityManagerHelper.getEntityManager();
|
||||
|
||||
JpaTest test = new JpaTest(manager);
|
||||
|
||||
EntityTransaction tx = manager.getTransaction();
|
||||
tx.begin();
|
||||
try {
|
||||
|
||||
// TODO create and persist entity
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
tx.commit();
|
||||
|
||||
|
||||
manager.close();
|
||||
EntityManagerHelper.closeEntityManagerFactory();
|
||||
System.out.println(".. done");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
67
src/main/resources/META-INF/persistence.xml
Normal file
67
src/main/resources/META-INF/persistence.xml
Normal file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<persistence xmlns="https://jakarta.ee/xml/ns/persistence"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"
|
||||
version="3.0">
|
||||
|
||||
<persistence-unit name="dev" transaction-type="RESOURCE_LOCAL">
|
||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||
<properties>
|
||||
<property name="jakarta.persistence.jdbc.driver"
|
||||
value="org.hsqldb.jdbcDriver" />
|
||||
<property name="jakarta.persistence.jdbc.url"
|
||||
value="jdbc:hsqldb:hsql://localhost/" />
|
||||
<property name="jakarta.persistence.jdbc.user" value="sa" />
|
||||
<property name="jakarta.persistence.jdbc.password" value="" />
|
||||
<property
|
||||
name="jakarta.persistence.schema-generation.database.action"
|
||||
value="create" />
|
||||
<property name="jakarta.persistence.dialect"
|
||||
value="org.hibernate.dialect.HSQLDialect" />
|
||||
<property name="hibernate.show_sql" value="true" />
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
<persistence-unit name="prod" transaction-type="RESOURCE_LOCAL">
|
||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||
<properties>
|
||||
<property name="jakarta.persistence.jdbc.driver"
|
||||
value="org.hsqldb.jdbcDriver" />
|
||||
<property name="jakarta.persistence.jdbc.url"
|
||||
value="jdbc:hsqldb:hsql://localhost/" />
|
||||
<property name="jakarta.persistence.jdbc.user" value="sa" />
|
||||
<property name="jakarta.persistence.jdbc.password" value="" />
|
||||
<property
|
||||
name="jakarta.persistence.schema-generation.database.action"
|
||||
value="update" />
|
||||
<property name="jakarta.persistence.dialect"
|
||||
value="org.hibernate.dialect.HSQLDialect" />
|
||||
<property name="hibernate.show_sql" value="true" />
|
||||
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
|
||||
<persistence-unit name="mysql">
|
||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||
|
||||
<properties>
|
||||
<property name="jakarta.persistence.jdbc.driver"
|
||||
value="com.mysql.cj.jdbc.Driver" />
|
||||
<property name="jakarta.persistence.jdbc.url"
|
||||
value="jdbc:mysql://localhost/mydatabase" />
|
||||
<property name="jakarta.persistence.jdbc.user" value="tlc" />
|
||||
<property name="jakarta.persistence.jdbc.password" value="tlc" />
|
||||
<property
|
||||
name="jakarta.persistence.schema-generation.database.action"
|
||||
value="update" />
|
||||
<property name="jakarta.persistence.dialect"
|
||||
value="org.hibernate.dialect.MySQL8Dialect" />
|
||||
<property name="hibernate.show_sql" value="true" />
|
||||
<property name="hibernate.c3p0.min_size" value="5" />
|
||||
<property name="hibernate.c3p0.max_size" value="20" />
|
||||
<property name="hibernate.c3p0.timeout" value="300" />
|
||||
<property name="hibernate.c3p0.max_statements" value="50" />
|
||||
<property name="hibernate.c3p0.idle_test_period" value="3000" />
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
|
||||
</persistence>
|
||||
15
src/main/resources/log4j.properties
Normal file
15
src/main/resources/log4j.properties
Normal file
@@ -0,0 +1,15 @@
|
||||
----------------------------------------------log4j.properties
|
||||
|
||||
### direct log messages to stdout
|
||||
###
|
||||
log4j.rootLogger=INFO, stdout
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.stdout.Target=System.out
|
||||
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
|
||||
|
||||
# Log everything. Good for troubleshooting
|
||||
log4j.logger.org.hibernate=ERROR
|
||||
|
||||
# Log all JDBC parameters
|
||||
log4j.logger.org.hibernate.type=ERROR
|
||||
Reference in New Issue
Block a user