ORM 사양
1. [필수] 테이블 쿼리에서는 쿼리의 필드 목록으로 *를 사용하지 마세요. 어떤 필드가 필요한지 명확하게 명시해야 합니다.
지침: 1) 쿼리 분석기 구문 분석 비용을 늘립니다. 2) 필드를 추가하거나 빼는 것은 resultMap 구성과 일치하지 않을 수 있습니다.
2. [필수] POJO 클래스의 부울 속성은 is로 추가할 수 없으며, 데이터베이스 필드는 is _로 추가해야 합니다. resultMap에서 필드와 속성 간의 매핑을 수행해야 합니다.
참고: POJO 클래스 정의 및 데이터베이스 필드 정의를 참조하세요. sql.xml에 매핑을 추가해야 합니다.
지침:
손쉬운 유지 관리를 위해 DO 클래스에서 필드를 분리하도록 매핑 관계를 구성합니다.
4. [필수] xml 구성에서 매개변수 사용에 주의하세요: #{}, # param # ${}를 사용하지 마세요.
5. [필수] iBATIS와 함께 제공되는 queryForList(StringstatementName, int start, int size)는 권장되지 않습니다.
설명: 구현 방법은 데이터베이스에서statementName에 해당하는 SQL 문의 모든 레코드를 가져온 다음 subList
를 통해 시작 및 크기의 하위 집합을 가져오는 것입니다. 이 때문에 OOM이 온라인에 나타났습니다.긍정적 예: Introduce #start#, #size#
Map<String, Object> map = new HashMap<String, Object>(); map.put("start", start); map.put("size", size);
6 [필수] sqlmap.xml에 설정된 쿼리 결과의 출력으로 HashMap 및 Hashtable을 직접 사용하는 것은 허용되지 않습니다.
을 실행할 때 수정되지 않은 필드를 업데이트하지 마십시오. 첫째, 오류가 발생하기 쉽고 셋째, binlog가 저장 공간을 늘립니다.
9. [참고] @ Transactional 거래를 남용하지 마세요. 트랜잭션은 데이터베이스의 QPS에 영향을 미칩니다. 또한 트랜잭션이 사용되는 경우 캐시 롤백, 검색 엔진 롤백, 메시지 보상, 통계 수정 등을 포함한 다양한 롤백 솔루션을 고려해야 합니다.
10. [참고] < isEqual >의 CompareValue는 속성 값과 비교되는 상수로, < isNotEmpty > null이 아닙니다. < isNotNull >는 값이 null이 아닐 때 실행됨을 의미합니다.