#30 jpa basic: jpql - named query

This commit is contained in:
haerong22
2023-02-06 02:56:07 +09:00
parent c09c5781a0
commit de4b8dc94f
2 changed files with 69 additions and 0 deletions

View 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();
}
}

View File

@@ -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