728x90 반응형 프로그램/JPA18 JPA 복합키 대부분의 엔티티에는 @Id 애노테이션을 한 개 사용한다. 하지만 테이블의 키가 복합키로 이뤄져 있다면 엔티티를 설계할 때에 이를 고려해야 한다. 복합키 설정 방법은 두 가지가 있다. 1 2 @Embeddable 이용하는 방법 @IdClass 이용하는 방법 cs 첫 번째 방법이 객체지향 방식에 가깝다고 한다. 두 번째 방법은 DB 방식에 가깝다고 하는데 잘 와닿지는 않는다. @Embeddable 이용 방법 다음과 같이 emp 테이블이 존재한다. emp 테이블의 키는 emp_name, emp_no 두 개의 복합키로 이뤄져 있다. 1 2 3 4 5 6 create table emp ( emp_name varchar(255) not null, emp_no integer not null, name varchar(.. 2021. 8. 5. [Querydsl] Case When 사용하기 CaseBuilder를 통해 CaseWhen 문법 시작 when: 조건문 then: when절이 true일 경우 실행 otherwise: when절이 false일 경우 실행 otherwise가 끝나면 결과 물에 대한 alias(as) 적용 일반적으로는 Entity의 필드명이 자동으로 as 적용됨 하지만 CaseBuilder를 통해 계산한 결과물은 필드명이 없음 alias 하지 않으면 결과물 필드가 어떤 필드로 가야할지 명시되지 않아 오류가 발생 public List selectAuthManageList(Map searchInfo) { String searchKeyword = searchInfo.get("searchKeyword"); List tnAuthorList = queryFactory .select.. 2021. 8. 3. no persistence.xml file found in project no persistence.xml file found in project Window->Preferences->Java Persistence-> JPA-> Errors/warnings-> Project 2021. 7. 22. 전자정부 표준프레임워크 3.10 전자정부 표준프레임워크 3.10 셋팅 2021. 7. 6. jboss-web.xml jbos서버를 사용시 셋팅 파일입니다. / SET SESSION false 2021. 7. 2. web.xml web.xml 환경설정 PortalWeb export-path /export import-path /import monitor-enabled true monitor-cycle-time 30 file-storage-time 10 cors egovframework.com.cmm.filter.SimpleCorsFilter cors /* index.jsp BASIC java.lang.Throwable /common/error.jsp 404 /common/error.jsp 500 /common/error.jsp http://www.egovframe.go.kr/tags/double-submit/jsp /META-INF/double-submit.tld 70 COOKIE 2021. 7. 2. logback.xml 로그 설정 파일입니다. %d{HH:mm:ss.SSS} [%thread] %-5level [%logger] - %msg%n 2021. 7. 2. pom.xml query dsl을 생성하기 위해 plugin인에 옵션을 추가하였습니다. 주석으로 설명 달아 놓았습니다. 4.0.0 invako invako war 1.0.0 invako http://www.egovframe.go.kr The Apache Software License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt 4.3.22.RELEASE 3.9.0 3.9.0 1.7.5 1.0.0-SNAPSHOT 5.5.2.Final 4.1.4 1.4.2.Final jdt_apt tobesoft http://mangosteen.tobesoft.co.kr/nexus/repository/maven-public/ mvn2 https://repo1.maven.org.. 2021. 7. 2. postgre ddl 테스트용 ddl select * from TEST_TEAM; /* 1. 팀정보 시퀀스 생성 */ DROP SEQUENCE SQ_N_TEST_TEAM_01; CREATE SEQUENCE SQ_N_TEST_TEAM_01 START 1; /* 1.테스트 테이블 팀정보 */ CREATE TABLE TEST_TEAM ( TEAM_SN NUMERIC(12) NOT NULL, TEAM_NM VARCHAR(60) NOT NULL, TEAM_DC VARCHAR(200), SORT NUMERIC(4), DEL_YN CHAR(1) NOT NULL, REGISTER_ID VARCHAR(20) NOT NULL, REG_DT TIMESTAMP NOT NULL, UPDUSR_ID VARCHAR(20) NOT NULL, MDFCN_.. 2021. 7. 2. 마이바티스 쿼리 샘플 /* selectAuthManageList */ /* 권한관리 조회 */ SELECT AUTHOR_CODE, /* 권한코드 */ AUTHOR_NM, /* 권한명 */ AUTHOR_DC, /* 권한설명 */ AUTHOR_CREAT_DE, /* 권한생성일 */ DECODE(USE_AT,'Y',1,0) AS USE_AT, /* 사용여부 */ 'N' AS DEL_STATUS, /* 삭제여부 */ '롤등록' AS BTN_ROLE /* 버튼 */ FROM COMTNAUTHORINFO WHERE 1 = 1 AND AUTHOR_NM LIKE '%'||#{searchKeyword}||'%' /* insertAuthManage */ /* 권한등록 */ /* updateAuthManage */ /* 권한수정 */ 2021. 7. 2. mapper-config.xml 마이바티스 mapper-config.xml 2021. 7. 2. context-transaction.xml 마이바티스와 jpa를 같이 쓰기 위해서는 트랜잭션 설정이 중요합니다. 에러가 발생하였을 경우 rollback이 제대로 일어 나야 합니다. 주석으로 설명 달아 놓았습니다. 마이바티스는 트랜잭션 설정할때 귀찮으니까.. 이렇게 한줄로 select,insert,update,delete 몽땅 다 트랜잭션 설정 되게 * 로 하고 사용하는데 jpa 사용할때는 세부적으로 옵션을 설정 하여야 시스템을 좀더 효율적으로 사용할수 있습니다. jpa는 dirty check를 하여서 읽어온 Entity에 변경이 발생하였을경우 자동으로 db에 저장을 합니다. 똑같은 데이터를 snap 해서 메모리에 올려 놓고 원본과 비교해서 변경 사항이 있으면 그냥 트랜잭션이 종료 될때 의도치 않는 업데이트가 발생합니다. 그래서 select는 읽기.. 2021. 7. 2. context-nexacro.xml 전자정부 하면 front단이 넥사크로 입니다. 넥사크로 환경 파일입니다. 2021. 7. 2. context-mapper.xml 마이바티스에서 멀티 db 설정하기 위해서 2개의 db 설정 파일입니다. 데이터베이스트 티베로와 postgresq입니다. 티베로 db를 사용하기 위해서 tibero mapper 클래스를 만들어서 설정을 하였습니다. classpath:/egovframework/sqlmap/mapper/postgre/invako/**/*.xml classpath:/egovframework/sqlmap/mapper/tibero/invako/**/*.xml 2021. 7. 2. context-jpa-repository.xml jpaRepository package 경로 스캔설정 파일입니다. 2021. 7. 2. context-hibernate.xml 주석으로 설명 달아 놓았습니다. 이해가 안가시는분은 댓글 달아 주세요. was 에 따라서 멀티 db가 조금 꼬여서 톰캣서버에서는 잘되는데 jboss에서는 되긴 되는데 조금 db연결이 꼬여서 제외 했습니다. 멀티 db 마이바티스는 잘됩니다. jpa도 톰캣서버에서는 멀티 db 잘됩니다. org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl none egovframework.invako.querydsl.config.CustomPostgreSQLDialect true true true 5 2021. 7. 2. context-datasource.xml 설정 파일 /* context-datasource.xml */ 멀티 DB 환경 설정 파일입니다. classpath*:/egovframework/egovProps/globals.properties 2021. 7. 2. 전자정부 소스 자동 생성 툴 전자정부 소스 자동생성 툴 메인화면입니다. jpa관련 엔티티,DTO,MAPPER, 서비스 단 만들기 귀찮아서 기본적으로 조회,등록,수정,삭제 기능까지 자동생성 툴입니다. 2021. 6. 30. 이전 1 다음 728x90 반응형