https://github.com/fuxingloh/hibernate-utils
Hibernate utils for JPA entity manager, run transaction in lambda.
https://github.com/fuxingloh/hibernate-utils
hibernate-utils jpa-entity-manager lambda transaction transaction-provider
Last synced: 18 days ago
JSON representation
Hibernate utils for JPA entity manager, run transaction in lambda.
- Host: GitHub
- URL: https://github.com/fuxingloh/hibernate-utils
- Owner: fuxingloh
- License: apache-2.0
- Created: 2017-01-09T13:33:40.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-01-09T14:08:28.000Z (over 8 years ago)
- Last Synced: 2025-06-11T20:52:56.844Z (22 days ago)
- Topics: hibernate-utils, jpa-entity-manager, lambda, transaction, transaction-provider
- Language: Java
- Size: 58.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hibernate Utils
Hibernate utils for JPA entity manager, with this utils you can run transaction in a lambda.### Supported Functions
- with() run transaction without returning anything.
- reduce() run transaction and return a object.
- optional() run transaction and return a optional object. NoResultException is caught and will return Optional.empty()### Creating Transaction Provider
Provider are created with persistence.xml
```java// Creating default provider with unitName = defaultPersistenceUnit
TransactionProvider provider = HibernateUtils.setupFactory(null);
// Get default provider from HibernateUtils
TransactionProvider provider = HibernateUtils.get();
// Shutting down default provider
HibernateUtils.shutdown();// Custom provider with assigned unit name
TransactionProvider provider = HibernateUtils.setupFactory("myPersistenceUnit", null);
// Get custom provider from HibernateUtils
TransactionProvider provider = HibernateUtils.get("myPersistenceUnit");
// Shutting down custom provider
HibernateUtils.shutdown("myPersistenceUnit");// Shutdown all provider
HibernateUtils.shutdownAll();// Create provider with custom properties
Map properties = new HashMap<>();
properties.put("hibernate.hbm2ddl.auto", "create-drop");
HibernateUtils.setupFactory("myPersistenceUnit", properties);
```### Using transaction Provider
```java
// Setup persistence unit factory
HibernateUtils.setupFactory("myPersistenceUnit");TransactionProvider provider = HibernateUtils.get("myPersistenceUnit");
// With function
provider.with(em -> em.persist(row));
// Reduce function
provider.reduce(em -> em.createQuery(
"SELECT COUNT(DISTINCT g.id) FROM Row g", Long.class)
.getSingleResult());
// Optional function
provider.optional(em -> em.createQuery(
"SELECT g FROM Row g WHERE g.id = 1234", Long.class)
.getSingleResult());
```