Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- JPA DB Connection 다중
- 자바버그수정
- mapper annotationo
- spring JPA DB Connection
- 도커 logs
- spring DB Connection
- spring mapper
- @Builder @NoArgsConstructor
- spring mapper annotation
- 도커 로그 확인
- JPA DB 다중 Connection
- Transactions Propagation Option
- Spring
- Data Annotation
- 도커 컨테이너 로그
- vueslot
- docker 로그
- Vue
- JpaRepository update
- spring @mapper
- Spring JPA Specification
- vuecomponent
- spring JPA DB multi Connection
- NoArgsConstructor
- repository annotation
- doker logs tail
- CrudRepository update
- JAVA Exception 종류
- AllArgsConstructor
- spring repository
Archives
- Today
- Total
개발을 잘하고 싶은 개발자
[Spring JPA] PROCEDURE 프로시져 호출 본문
JPA의 장점으로 지금 프로젝트에서 편리한 점이 많지만
이런 예외(?)를 종종 맞닥드릴때마다 가이드 보면서 한단계 한단계 공부한다..
간단한 호출이나 이런저런 쿼리를 사용하다
프로시져 호출할 일이 생겼다!
@Entity
@Table(name = "CAR")
@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(
name = "findByYearProcedure",
procedureName = "FIND_CAR_BY_YEAR",
resultClasses = { Car.class },
parameters = {
@StoredProcedureParameter(
name = "p_year",
type = Integer.class,
mode = ParameterMode.IN) })
})
public class Car {
private long id;
private String model;
private Integer year;
public Car(String model, Integer year) {
this.model = model;
this.year = year;
}
public Car() {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID", unique = true, nullable = false, scale = 0)
public long getId() {
return id;
}
@Column(name = "MODEL")
public String getModel() {
return model;
}
@Column(name = "YEAR")
public Integer getYear() {
return year;
}
// standard setter methods
}
우선 엔티티를 선언해주고
public class StoredProcedureTest {
private static EntityManagerFactory factory = null;
private static EntityManager entityManager = null;
@BeforeClass
public static void init() {
factory = Persistence.createEntityManagerFactory("jpa-db");
entityManager = factory.createEntityManager();
}
@Test
public void findCarsByYearWithNamedStored() {
StoredProcedureQuery findByYearProcedure =
entityManager.createNamedStoredProcedureQuery("findByYearProcedure");
StoredProcedureQuery storedProcedure =
findByYearProcedure.setParameter("p_year", 2015);
storedProcedure.getResultList()
.forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear()));
}
@Test
public void findCarsByYearNoNamedStored() {
StoredProcedureQuery storedProcedure =
entityManager
.createStoredProcedureQuery("FIND_CAR_BY_YEAR",Car.class)
.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN)
.setParameter(1, 2015);
storedProcedure.getResultList()
.forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear()));
}
}
엔티티매니져로 파라미터 넣고 호출한다

'Backend > spring' 카테고리의 다른 글
[Spring] JPA DB Connection 다중으로 사용하기! (0) | 2021.08.03 |
---|---|
[Spring JPA] JpaRepository update업데이트 하고 싶지만 save (0) | 2021.08.02 |
[Spring] RESTful 서비스 설계 - Exception 설계한 Response 처리 (0) | 2021.07.24 |
[Spring] DTO, VO, ENTITY 차이를 알고 써보자 (0) | 2021.07.22 |
servelt-mapping error Cannot resolve Servlet... (0) | 2016.01.28 |