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();
}