Programming-[Backend]/Java

[TIL] 클래스 내 private 메서드 임시 테스트 @PostConstruct, Column 이름 예약어 escape 처리

컴퓨터 탐험가 찰리 2023. 5. 18. 08:40
728x90
반응형

 

 

1. 클래스 내 private 메서드 임시 테스트

 

테스트 코드를 남길 필요가 없거나, 테스트를 하기가 곤란한 경우 임시로 빠르게 테스트를 할 수 있는 방법으로 @PostConstruct를 이용할 수 있다.

 

DB에 잘못된 데이터가 삽입될 수 있으므로 사용에 주의해야한다!!

 

위 그림처럼 Class내에 save... 메서드가 있고 이것을 임시 테스트하고 싶다면 @PostConstruct의 init() 메서드에 해당 메서드를 불러와서 실행하면 된다. 메서드에 들어가는 인자값들을 세팅해주고 세팅 과정에서 필요하다면 XxxRepository 같은 다른 클래스를 @Autowired로 주입받으면 된다.

 

이후 디버깅 모드로 breakpoints를 잡고 테스트해보면 파악이 힘든 에러나 동작 테스트를 임시로 해볼 수 있다.

 

임시적인 방법이므로 꼭 필요할 때만 사용하는게 좋다.

 

 

 

2. 예약어 escape 처리

 

type, open, group 등 각 데이터베이스마다 데이터베이스 자체에서 사용하는 이름이 있어서 따로 처리가 필요한 단어들이 있다. 이런 경우 MYSQL은 백틱( 또는 틸트 `) 를 앞뒤로 달아주면 된다.

 

@Column(name = "`type`")

 

mysql 예약어

https://learn.microsoft.com/ko-kr/sql/t-sql/language-elements/reserved-keywords-transact-sql?view=sql-server-ver15

 

H2 등 다른 데이터베이스는 백슬래시 이스케이프로 처리가 가능하다고도 한다. 참조할 글은 많아서 굳이 예약어 목록이나 처리 방식에 대해 상세히 기록할 필요는 없을 것 같다.

@Column(name="\"year\"")

 

참조

https://yjh5369.tistory.com/entry/Spring-boot-JPA%EC%97%90%EC%84%9C-DB-%EC%98%88%EC%95%BD%EC%96%B4%EB%A5%BC-column%EC%9C%BC%EB%A1%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

https://jaime-note.tistory.com/372

728x90
반응형