# spring-jpa-hibernate-annotationTx **Repository Path**: luoyong/spring-jpa-hibernate-annotationTx ## Basic Information - **Project Name**: spring-jpa-hibernate-annotationTx - **Description**: Spring jpa example. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2014-08-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### pom.xml ``` xml 4.0.0 name.luoyong.spring spring-jpa-hibernate-annotationTx 0.0.1-SNAPSHOT jar UTF-8 4.11 4.0.3.RELEASE 4.3.6.Final 5.1.6 1.0.7 junit junit ${junit.version} test org.springframework spring-context ${spring.version} org.springframework spring-orm ${spring.version} org.hibernate hibernate-entitymanager ${hibernate.version} mysql mysql-connector-java ${mysql.version} com.alibaba druid ${druid.version} ``` ##### applicationContext.xml ``` xml ``` #### META-INF/persistence.xml ``` org.hibernate.ejb.HibernatePersistence ``` #### Stone.java ``` java package name.luoyong.spring.jpa.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Stone { private Long id; private String name; @Id @GeneratedValue public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` #### StoneDao.java ``` java package name.luoyong.spring.jpa.dao; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import name.luoyong.spring.jpa.entity.Stone; import org.springframework.stereotype.Repository; @Repository public class StoneDao { @PersistenceContext private EntityManager em; public void save(Stone stone) { em.persist(stone); System.out.println("persist stone"); } public void delete(Long id) { em.createQuery("delete from Stone where id=:id").setParameter("id", id).executeUpdate(); } } ``` #### StoneService.java ``` java package name.luoyong.spring.jpa.service; import name.luoyong.spring.jpa.dao.StoneDao; import name.luoyong.spring.jpa.entity.Stone; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service public class StoneService { @Autowired private StoneDao stoneDao; @Transactional public void save(Stone stone) { stoneDao.save(stone); } @Transactional public void delete(Long id) { stoneDao.delete(id); } } ``` #### Main test ``` java package name.luoyong.spring.jpa; import name.luoyong.spring.jpa.entity.Stone; import name.luoyong.spring.jpa.service.StoneService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args) throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml"); StoneService stoneService = (StoneService) ctx.getBean(StoneService.class); Stone stone = new Stone(); stone.setName("Big Stone"); stoneService.save(stone); //stoneService.delete(1L); } } ```