JAVA

[JPA] JAVA 쿼리 UPDATE문

유반짝 2022. 11. 9. 11:20

============================================================================================

service.java

============================================================================================

0. 테이블 명으로 java파일을 생성할 때

public class Master extends BaseJpaModel<Master.MasterId>{}

로 JPA로 클래스를 상속해주면 각각의 인스턴스들을 사용할 수 있음

0. Q로 시작하는 인스턴스들은 com.ppm.mes.domain package 안에 있는 BaseService에서도 선언해줄 것.

 

1. UPDATE (WHERE 조건 여러개)

(괄호에 주의! 괄호수가 일치하지 않으면 오류가 나지는 않아도 쿼리실행안됨)

if(isNotEmpty(m.getAtchmFile())){
    update(qDeliveryList)
    .set(QDeliveryList.crrRegProcRec, "Y")
    .set(QDeliveryList.updatedAt, Instant.now(Clock.systemUTC()))
    .set(QDeliveryList.updatedBy, SessionUtils.getCurrentLoginUserCd())
    .where(qSalaryCalc.company.eq(m.getCompany()).and(qSalaryCalc.bslnYr.eq(m.getBslnYr()).and(qSalaryCalc.empNo.eq(m.getEmpNo())))).execute();
}

2. DELETE

    @Transactional
	public void deleteAll(InspcListMaster m) {
    	if (m != null) {
    		BooleanBuilder builderMaster = new BooleanBuilder();
        	BooleanBuilder builderDetail = new BooleanBuilder();

        	if (isNotEmpty(m.getCompany()) && isNotEmpty(m.getInspcDylgCd()) && isNotEmpty(m.getInspcDt())) {
    			builderMaster.and(qInspcListMaster.company.eq(m.getCompany()));
    			builderMaster.and(qInspcListMaster.inspcDylgCd.eq(m.getInspcDylgCd()));
    			builderMaster.and(qInspcListMaster.inspcDt.eq(m.getInspcDt()));
    			builderMaster.and(qInspcListMaster.dylgNo.eq(m.getDylgNo()));

    			builderDetail.and(qInspcWasteDetail.dylgNo.eq(m.getDylgNo()));
    			builderDetail.and(qInspcWasteDetail.inspcDt.eq(m.getInspcDt()));

    			delete(qInspcListMaster).where(builderMaster).execute();
    			delete(qInspcWasteDetail).where(builderDetail).execute();
        	}
    	}

3. SELECT 

	//조회
	public List<Inspc> getList(RequestParams<Inspc> requestParams){

    	BooleanBuilder builder = new BooleanBuilder();
        if (isNotEmpty(requestParams.getString("company"))) {
            builder.and(qInspc.company.eq(requestParams.getString("company")));
        }
		return select().from(qInspc).where(builder).fetch();
	}