개발을 잘하고 싶은 개발자

[DB] Spring Procedure 호출시 Entity로 받아오기 본문

Backend/DB

[DB] Spring Procedure 호출시 Entity로 받아오기

_소피아 2021. 7. 19. 22:27

참고 https://www.baeldung.com/spring-data-jpa-stored-procedures

REF_CURSOR 에 반환값을 바꿔도,

어노테이션에 넣어도,

계속 ArrayList 형태로 출력되서 겨우겨우 구글링하면서 찾아 결국 성공했다.

"EntityManager"로 프로시져 호출하면서 프로시져명 뒤에 받아올 Entity 클래스를 "MyObject.class"라고 넣어준다.

 

이 방법을 못찾았다면 ArrayList를 다시 Entity에 넣는 소스를 만드었을지도 모른다ㅠ

오늘도 하나 Clear!

EntityManager em = entityManagerFactory.createEntityManager()
StoredProcedureQuery query = 
em.createStoredProcedureQuery("SCHEMA.PROC_NAME", MyObject.class)

query.registerStoredProcedureParameter(1, String.class, ParameterMode.IN)
query.registerStoredProcedureParameter(2, String.class, ParameterMode.IN)
query.registerStoredProcedureParameter(3, MyObject.class, ParameterMode.REF_CURSOR)
query.setParameter(1, "parameter1")
query.setParameter(2, "parameter2")

query.execute()
List<MyObject> results = query.getResultList()

'Backend > DB' 카테고리의 다른 글

[DB] Oracle Procedure REF_CURSOR 사용  (0) 2021.07.19