728x90
반응형
1. 클래스 내 private 메서드 임시 테스트
테스트 코드를 남길 필요가 없거나, 테스트를 하기가 곤란한 경우 임시로 빠르게 테스트를 할 수 있는 방법으로 @PostConstruct를 이용할 수 있다.
DB에 잘못된 데이터가 삽입될 수 있으므로 사용에 주의해야한다!!
위 그림처럼 Class내에 save... 메서드가 있고 이것을 임시 테스트하고 싶다면 @PostConstruct의 init() 메서드에 해당 메서드를 불러와서 실행하면 된다. 메서드에 들어가는 인자값들을 세팅해주고 세팅 과정에서 필요하다면 XxxRepository 같은 다른 클래스를 @Autowired로 주입받으면 된다.
이후 디버깅 모드로 breakpoints를 잡고 테스트해보면 파악이 힘든 에러나 동작 테스트를 임시로 해볼 수 있다.
임시적인 방법이므로 꼭 필요할 때만 사용하는게 좋다.
2. 예약어 escape 처리
type, open, group 등 각 데이터베이스마다 데이터베이스 자체에서 사용하는 이름이 있어서 따로 처리가 필요한 단어들이 있다. 이런 경우 MYSQL은 백틱( 또는 틸트 `) 를 앞뒤로 달아주면 된다.
@Column(name = "`type`")
mysql 예약어
H2 등 다른 데이터베이스는 백슬래시 이스케이프로 처리가 가능하다고도 한다. 참조할 글은 많아서 굳이 예약어 목록이나 처리 방식에 대해 상세히 기록할 필요는 없을 것 같다.
@Column(name="\"year\"")
참조
728x90
반응형
'Programming-[Backend] > Java' 카테고리의 다른 글
[경험 요약] 자바 테스트 객체 자동으로 만들기: Instancio 라이브러리 (0) | 2024.05.20 |
---|---|
[TIL][작성Java - @RequestBody null 문제: jackson, @NotNull, @NoArgsConstructor (0) | 2023.06.11 |
자바 입력 : InputStream, InputStreamReader, BufferedStream, Scanner (0) | 2022.06.02 |
에러 발생 시 특정 기능을 하도록 만들기 : 정적 팩토리 메서드 (0) | 2022.06.01 |
[TIL][링크] 자바 리스트 stream split 처리 - groupingBy (0) | 2022.05.24 |