# hibernate-JPA
**Repository Path**: luoyong/hibernate-JPA
## Basic Information
- **Project Name**: hibernate-JPA
- **Description**: Hibernate JPA example.
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2014-08-27
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#### pom.xml
``` xml
4.0.0
name.luoyong.hibernate
hibernate-JPA
0.0.1-SNAPSHOT
jar
hibernate-JPA
UTF-8
junit
junit
4.11
test
org.hibernate
hibernate-entitymanager
4.3.6.Final
mysql
mysql-connector-java
5.1.6
```
#### persistence.xml
``` xml
Persistence unit for the JPA tutorial of the Hibernate Getting Started Guide
```
#### java test
``` java
package name.luoyong.hibernate.entitymanager;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import org.hibernate.SQLQuery;
import org.hibernate.transform.Transformers;
import name.luoyong.hibernate.basic.entity.Group;
import name.luoyong.hibernate.basic.entity.User;
public class App {
private static EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("org.hibernate.tutorial.jpa");
public static void main(String[] args) {
persist();
// find();
// getReference();
// remove();
// queryResultList();
// querySingleResult();
// nativeQuery();
// namedQuery();
// testGetUserByFields();
entityManagerFactory.close();
}
private static void persist() {
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
User ly = new User();
ly.setUsername("shulei");
ly.setPassword("asdfasf");
Group group = new Group();
group.setName("second group");
ly.setGroup(group);
group.getUsers().add(ly);
entityManager.persist(ly);
entityManager.persist(group);
entityManager.getTransaction().commit();
entityManager.close();
}
private static void find() {
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
User user = entityManager.find(User.class, 1L); // 1,缓存,2,若没有,立即去数据库加载,若没有,则返回null
// User user2 = entityManager.getReference(User.class, 1L);
// 1,缓存,2,若没有,延迟去数据库加载,若没有,EntityNotFoundException
System.out.println(user.getUsername());
System.out.println(user.getPassword());
// entityManager.clear();
// entityManager.merge(user);
entityManager.getTransaction().commit();
entityManager.close();
}
private static void getReference() {
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
User user = entityManager.getReference(User.class, 1L);
// 1,缓存,2,若没有,延迟去数据库加载,若没有,EntityNotFoundException
user.setPassword("se"); // 当 commit 或 flush 时,更新到数据库
System.out.println(user.getUsername());
System.out.println(user.getPassword());
entityManager.getTransaction().commit();
entityManager.close();
}
private static void remove() {
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
User user = entityManager.find(User.class, 1L);
entityManager.remove(user);
entityManager.getTransaction().commit();
entityManager.close();
}
private static void queryResultList() {
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
Query query = entityManager.createQuery("from User");
List users = query.getResultList();
for (User user : users) {
System.out.println(user.getUsername());
System.out.println(user.getGroup().getName());
}
entityManager.getTransaction().commit();
entityManager.close();
}
private static void querySingleResult() {
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
TypedQuery query = entityManager.createQuery("from User where username=:username", User.class);
query.setParameter("username", "luoyong");
User user = query.getSingleResult(); // 若实际的结果不止 一个,则异常。
System.out.println(user.getUsername());
System.out.println(user.getGroup().getName());
entityManager.getTransaction().commit();
entityManager.close();
}
private static void nativeQuery() {
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
Query query = entityManager.createNativeQuery("select username, password from user2");
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List