본문 바로가기
반응형

mybatis5

QueryDSL, MyBatis, JdbcTemplate 타입 안정성 QueryDSL의 타입 안정성Querydsl의 핵심 원칙은 타입 안정성(Type safety) 이다. 도메인 타입의 프로퍼티를 반영해서 생성한 쿼리 타입을 이용해서 쿼리를 작성하게 된다. 또한, 완전히 타입에 안전한 방법으로 함수/메서드 호출이 이루어진다. QueryDSL은 개발자가 직접 SQL문을 작성하지 않고, Java 코드 기반의 빌더 API를 사용하여 타입 안전한 쿼리를 작성할 수 있도록 도와주는 프레임워크입니다. QClass는 정적 타입 기반으로 생성된 클래스로, 컴파일 시점에 타입 안정성을 보장하며, 쿼리 작성 과정에서 발생할 수 있는 오류를 최소화합니다. 또한 QClass는 엔티티 클래스에서 생성되며, 엔티티와 데이터베이스의 컬럼 이름을 기반으로 쿼리를 작성하기 때문에, 매핑할 프로퍼티 불일.. 2024. 12. 2.
MyBatis에서 조회 쿼리 결과 resultMap 확장하는 방법 기존에 사용되고 있는 resultMap을 확장하여 새로운 resultMap을 정의하는 것이 필요했습니다.  extends 키워드를 사용하면 확장할 수 있습니다.  다음은 예시 코드입니다. 2024. 11. 13.
MyBatis useGeneratedKeys 조심히 사용하기 회사 코드 중에 알림톡을 발송하는 로직이 있었고 로직은 다음과 같이 구현이 되어 있었습니다.  비즈니스 로직을 수행알림톡 이벤트 발행알림톡 이벤트 소비알림톡 발송 이벤트를 발행할 때는 다음과 같이 비즈니스 로직에서 수행된 결과값 중 하나를 사용하고 있었습니다.이를 컬럼 'happyCallId' 라고 하겠습니다. 아래는 이벤트 발행에 사용되는 JSON 객체입니다.{ "happyCallId" : 1234567 [Long 타입] ...}  id의 값의 정상적인 범위는 2_000_000 ~ 2_500_000 범위 값이 되어야 합니다.하지만 간헐적으로 알림톡에 발행될 때 입력되는 id 값이 17_000_000 ~ 18_000_000  범위 값인 경우가 있었습니다. 여러가지 로그를 찍으며 의심되는 범위를 좁혀갔고 .. 2024. 10. 7.
[JPA] 트랜잭션을 지원하는 쓰기 지연은 락을 몇 초 잡을까? JPA는 엔티티 매니저가 트랜잭션을 지원하는 쓰기 지연을 통해 트랜잭션이 종료될 때 플러시하고 커밋할 때 모든 쿼리를 데이터베이스에 전송하여 각 로우 데이터의 락을 최소한으로 잡는다고 합니다. 그래서 아래의 경우들이 락을 얼마나 잡는지 궁금했습니다.MyBatis를 통해 트랜잭션을 실행하는 경우JPA로 트랜잭션을 실행하는 경우 우선 알아야 할 것은 락의 유지시간을 확인하는 방법입니다. MySQL을 사용한다면 performance_schema 데이터베이스를 통해서 확인할 수 있으며, 아래는 절차입니다. my.ini 또는 my.cnf에 아래 내용을 추가합니다.[mysqld]performance_schema=ONperformance_schema.setup_instruments 테이블을 수정합니다.트랜잭션 테이블.. 2024. 7. 14.
반응형