728x90
반응형
public class UserFunctionDialect extends MySQLDialect {
/** 생성자를 통해 등록한다. 등록법은 MySQLDialect 클래스를 참조한다. */
public UserFunctionDialect() {
registerFunction("group_concat", new StandardSQLFunction("group_concat", StandardBasicTypes.STRING));
}
}
public class JpqlLv1 {
@PersistenceContext
EntityManager em;
@BeforeEach
public void before() {
Team teamA = new Team("teamA");
Team teamB = new Team("teamB");
em.persist(teamA);
em.persist(teamB);
Member member1 = new Member("Member1", 10, teamA);
Member member2 = new Member("Member2", 20, teamA);
Member member3 = new Member("Member3", 30, teamB);
Member member4 = new Member("Member4", 40, teamB);
em.persist(member1);
em.persist(member2);
em.persist(member3);
em.persist(member4);
}
@Test
public jpqlUserFunction() {
List<String> functionResult = em.createQuery("select function('group_concat', m.username) from Member m", String.class).getResultList();
for (String s : functionResult) {
System.out.println("s = " + s);
}
JPAQueryFactory queryFactory = new JPAQueryFactory(em);
}
@Test
public querydslUserFunction() {
JPAQueryFactory queryFactory = new JPAQueryFactory(em);
List<String> result = queryFactory
.select(
Expressions
.stringTemplate("function('group_concat')", member.username) //와일드카드 사용 불가능
).from(member)
.fetch();
for (String s : result) {
System.out.println("s = " + s);
}
}
}
728x90
반응형
'Hibernate > JPA(EntityManager)' 카테고리의 다른 글
[JPA] @OneToOne 단방향/양방향 - 외래키 정책 기준 (1) | 2023.06.29 |
---|---|
[JPA] @OneToMany 단방향 / 양방향 - 외래키 관리 이해한 내용 정리 (0) | 2023.06.29 |
[JPA] @ManyToOne 단방향 / @ManyToOne <=> @OneToMany 양방향 정리 (0) | 2023.06.28 |
JPA EntityManager - Entity 기본 구현 및 SELECT, INSERT, UPDATE, DELETE (0) | 2023.04.15 |
[Spring Data JPA] 연관관계 매핑 LeftJOIN / InnerJOIN , @ManyToOne / @OneToOne , 단방향 / 양방향 (0) | 2022.11.18 |