반응형
mariadb를 사용하여 서비스 개발 중 delete로 필요한 row를 지울 때 limit을 줘서 지우려고 시도를 했었다.
mariadb 문법에서는 정상적으로 동작이 가능한 문법이기 때문에 당연히 제공할거라고 생각했다.
하지만 JPADeleteClause에서는 limit을 찾아볼 수 없어 사용할 수 없었다.
http://www.querydsl.com/static/querydsl/4.1.4/apidocs/com/querydsl/jpa/impl/JPADeleteClause.html
그 이유는 jpa의 dialect 때문이었다.
target DBMS가 변경되어도 쿼리를 수정할 필요가 없는 장점을 제공해주는 jpa의 dialect 때문에 공통 문법이 아닌 특정 specific한 dbms 문법은 제공하지 못하는 단점이 있다. 이럴 경우에는 JPQL이나 native등을 사용하거나 다른 방식으로 풀어야 할 것 같다.
https://stackoverflow.com/questions/67514433/querydsl-delete-query-using-limit
반응형
'web > JPA' 카테고리의 다른 글
query specified join fetching, but the owner of the fetched association was not present in the select list 설명과 문제해결 (0) | 2022.12.10 |
---|---|
MultipleBagFetchException 문제 발생 (0) | 2022.12.04 |
스프링 부트에서 사용하는 JPA 기능 정리 (3) | 2018.11.04 |
@MappedSuperclass를 이용한 부모 매핑정보 사용하기 (1) | 2018.11.03 |
JPA 상속관계 매핑 전략 (0) | 2018.10.31 |