Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ====================================XML===============================================
- <?xml version="1.0" encoding="UTF-8"?>
- <persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
- http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
- version="2.1">
- <persistence-unit name="fiesta_iot_rr_PU">
- <description>Database handling all FIESTA-IoT stored SQL based information</description>
- <provider>org.hibernate.ejb.HibernatePersistence</provider>
- <!-- <jta-data-source></jta-data-source> -->
- <class>eu.fiestaiot.dataregistry.entity.AbstractEntity</class>
- <class>eu.fiestaiot.dataregistry.entity.RegisteredTestbedEntity</class>
- <properties>
- <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
- <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
- <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/fiesta_iot_rr?zeroDateTimeBehavior=convertToNull"/>
- <!--
- <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/fiesta_iot_erm?autoReconnect=true&zeroDateTimeBehavior=convertToNull"/>
- -->
- <property name="hibernate.connection.username" value="fiesta-iot"/>
- <property name="hibernate.connection.password" value="F135t@pass"/>
- <property name="hibernate.show_sql" value="true" />
- <!-- Use one to auto-generate the DB schema -->
- <!--
- <property name="hibernate.hbm2ddl.auto" value="create-drop" />
- <property name="hibernate.hbm2ddl.auto" value="update" />
- <property name="hibernate.hbm2ddl.auto" value="validate" />
- -->
- <property name="hibernate.hbm2ddl.auto" value="update" />
- <property name="hibernate.format_sql" value="true"/>
- </properties>
- </persistence-unit>
- </persistence>
- ====================================XML===============================================
- ===================================JAVA Annotation=====================================
- package eu.fiestaiot.dataregistry.dao;
- import eu.fiestaiot.dataregistry.entity.AbstractEntity;
- import org.springframework.stereotype.Repository;
- import org.springframework.transaction.annotation.Transactional;
- import javax.annotation.PostConstruct;
- import javax.persistence.EntityManager;
- import javax.persistence.PersistenceContext;
- import java.lang.reflect.ParameterizedType;
- import java.util.List;
- @Repository
- public abstract class AbstractJPAPersistenceDAO <K, E extends AbstractEntity> implements IPersistenceDAO<K, E> {
- protected Class<E> entityClass;
- @PersistenceContext
- protected EntityManager em;
- @PostConstruct
- public void init() {
- ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
- this.entityClass = (Class<E>) genericSuperclass.getActualTypeArguments()[1];
- }
- @Override
- public E save(final E entity) {
- em.persist(entity);
- return entity;
- }
- public E update(final E entity) {
- return em.merge(entity);
- }
- public void remove(final E entity) {
- em.remove(em.merge(entity));
- }
- public E findById(final K id) {
- return em.find(entityClass, id);
- }
- public List<E> findAll() {
- return em.createNamedQuery(AbstractEntity.FIND_ALL).getResultList();
- }
- public Long getTotalResult() {
- return (Long) em.createNamedQuery(AbstractEntity.TOTAL_RESULT).getSingleResult();
- }
- public EntityManager getEm() {
- return em;
- }
- @PersistenceContext(unitName="fiesta_iot_rr_PU")
- public void setEm(EntityManager em) {
- this.em = em;
- }
- }
- ===================================JAVA Annotation=====================================
Advertisement
Add Comment
Please, Sign In to add comment