dev/JPA 기본

JPQL 기본 함수 , @OrderColumn

dev_0hoon 2024. 2. 20. 19:41

인프런 - 김영한 JPA 강의 중
인프런 - 김영한 JPA 강의 중

 

인프런 - 김영한 JPA 강의 중

 

 

function 등록해서 사용하기

 

public class MyH2Dialect extends H2Dialect {

    //function 등록
    public MyH2Dialect() {
        registerFunction("group_concat",new StandardSQLFunction("group_concat", StandardBasicTypes.STRING));
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2"
             xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
    <persistence-unit name="hello">
        <properties>
            <!-- 필수 속성 -->
            <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
            <property name="javax.persistence.jdbc.user" value="sa"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/jbook77"/>
            <property name="hibernate.dialect" value="dialect.MyH2Dialect"/>

persistence.yml에 등록해준다.

 

            String query = "select function('group_concat',m.username) from Member m ";

            List<String> resultList = em.createQuery(query).getResultList();

이렇게 사용이 가능해진다.