# 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);
}
}
```