#30 jpa basic: jpql - named query
This commit is contained in:
65
hello-jpa/src/main/java/com/hello/jpa/query/NamedQuery.java
Normal file
65
hello-jpa/src/main/java/com/hello/jpa/query/NamedQuery.java
Normal file
@@ -0,0 +1,65 @@
|
||||
package com.hello.jpa.query;
|
||||
|
||||
import com.hello.jpa.query.entity.Member;
|
||||
import com.hello.jpa.query.entity.Team;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.persistence.EntityTransaction;
|
||||
import javax.persistence.Persistence;
|
||||
import java.util.List;
|
||||
|
||||
public class NamedQuery {
|
||||
|
||||
public static void main(String[] args) {
|
||||
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
|
||||
|
||||
EntityManager em = emf.createEntityManager();
|
||||
|
||||
EntityTransaction tx = em.getTransaction();
|
||||
tx.begin();
|
||||
|
||||
try {
|
||||
Team team = new Team();
|
||||
team.setName("team1");
|
||||
em.persist(team);
|
||||
|
||||
Team team2 = new Team();
|
||||
team2.setName("team2");
|
||||
em.persist(team2);
|
||||
|
||||
Member member = new Member();
|
||||
member.setName("member1");
|
||||
member.setTeam(team);
|
||||
em.persist(member);
|
||||
|
||||
Member member2 = new Member();
|
||||
member2.setName("member2");
|
||||
member2.setTeam(team);
|
||||
em.persist(member2);
|
||||
|
||||
Member member3 = new Member();
|
||||
member3.setName("member3");
|
||||
member3.setTeam(team2);
|
||||
em.persist(member3);
|
||||
|
||||
em.flush();
|
||||
em.clear();
|
||||
|
||||
List<Member> result = em.createNamedQuery("Member.findByName", Member.class)
|
||||
.setParameter("name", "member2")
|
||||
.getResultList();
|
||||
|
||||
result.forEach(System.out::println);
|
||||
|
||||
tx.commit();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
tx.rollback();
|
||||
} finally {
|
||||
em.close();
|
||||
}
|
||||
|
||||
emf.close();
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,10 @@ package com.hello.jpa.query.entity;
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
@NamedQuery(
|
||||
name = "Member.findByName",
|
||||
query = "select m from Member m where m.name = :name"
|
||||
)
|
||||
public class Member {
|
||||
|
||||
@Id @GeneratedValue
|
||||
|
||||
Reference in New Issue
Block a user