IT개발/Spring Boot & Spring Data Rest & JPA(13)
-
Window Server에서 spring boot jar 백그라운드로 동작시키기
tomcat의 경우, service.bat 파일을 이용하여 윈도우 서비스로 등록해서 jenkins에서 제어했었다. => https://papababo.tistory.com/entry/%ED%86%B0%EC%BA%A3%EC%9D%84-%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A1%9C-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0 톰캣을 윈도우 서비스로 등록하기 0. 참고로 JAVA_HOME 환경변수는 잡혀있다는 가정하에 진행하겠다. 1. 톰캣 다운로드- https://tomcat.apache.org/download-90.cgi 2. Port 세팅- C:\********\apache-tomcat-9.0.10\conf\ser..
2023.02.17 -
java.lang.RuntimeException: io.undertow.util.ParameterLimitException: UT000047: The number of parameters exceeded the maximum of 1000
위와 같이 1000개의 파라미터가 넘어가는 상황이 발생하여 spring boot 프로젝트의 application.yml 설정에 충분한 값을 넣어주어 해결하였다. server.undertow.max-cookies Maximum number of cookies that are allowed. This limit exists to prevent hash collision based DOS attacks. 200 server.undertow.max-headers Maximum number of headers that are allowed. This limit exists to prevent hash collision based DOS attacks. server.undertow.max-http-post-size..
2023.02.17 -
Spring boot 2.6.2 MSSQL2019 연동 테스트
자~ 최신 spring boot를 이용하여 MSSQL 2019 버전에 한번 접속해보자! application.properties spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.jdbc-url=jdbc:sqlserver://mylocal-pc:1433;databaseName=test; spring.datasource.username=test spring.datasource.password=test spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_s..
2022.01.18 -
[JPA] Caused by: java.lang.NoSuchMethodError: 'javax.persistence.ValidationMode javax.persistence.spi.PersistenceUnitInfo.getValidationMode()'
원인 : jpa1.0 와 jpa2.0 을 동시에 쓴다고 pom.xml에 지정해놓으니 윈도우에서는 jpa2.0 이 클래스로더에서 먼저 읽혀 정상! 리눅스에서는 jpa1.0 이 클래스로더에서 먼저 읽혀 오류 뿜뿜! (왜냐하면 jpa1.0에는 getValidationMode 요 메소드가 없거든! => 아래 캡쳐 참고 ) 결론 : pom.xml에서 jpa1.0 사용하는 dependency에서 exclusion 처리해줌. 참고자료 : https://stackoverflow.com/questions/22167945/java-lang-nosuchmethoderror-javax-persistence-spi-persistenceunitinfo-getvalida
2021.11.25 -
JPA @Query의 결과값을 Map 에 담기
@Query("SELECT distinct new map ( i.svcCd as svcCd, i.svcNm as svcNm ) FROM BlockchainCd i WHERE i.state = true") public List findDistinctSvcByStateTrue(); @Query("SELECT new map ( i.docCd as docCd , i.docNm as docNm, i.etc as etc ) FROM BlockchainCd i WHERE i.svcCd= :svcCd AND i.state = true") public List findDocsBySvcCdAndStateTrue(@Param("svcCd") String svcCd); 매번 그때그때 일부 데이터를 받는걸 DTO를 만드려고 하..
2021.07.28 -
Spring Data Rest에서 EventHandler 동작안할때(별도URL 요청시)
@HandleBeforeCreate 와 같은 EventHandler는 Spring Data Rest에서 제공하는 기본 HTTP 요청(POST/ PATCH/ PUT/ DELETE 등)일때만 동작한다.즉 Customize하게 Controller에서 별도 HTTP 요청(POST/ PATCH/ PUT/ DELETE 등)을 만들경우, 동작되지 않으므로트랜잭션처리하는 서비스 레이어에 해당 EventHandler 를 재활용하여 동작하도록 하면 되겠다. 아래는 참고자료 되시겠다.https://stackoverflow.com/questions/39972215/spring-data-rest-handlebeforecreate-method-is-not-called Event Handlers (like @HandleBefore..
2018.07.18 -
Wrong column type in for column create_id. Found: nvarchar, expected: varchar(255)
현상 : Wrong column type in [테이블] for column create_id. Found: nvarchar, expected: varchar(255)원인 : 하이버네이트에서 기본적으로 varchar 또는 varchar2은 String 타입과 맵핑하는데 nvarchar로 맵핑되었다고 에러 뿜뿜(못해먹겠다고 들어누운상황) 하이버네이트 문서에 보면, string : A type mapping from java.lang.String to VARCHAR (or Oracle VARCHAR2).해결 : 1. @Nationalized 사용예시)@Nationalized @Column(name = "CREATE_ID", updatable = false) private String createId; 2. ..
2018.05.10 -
[Spring Data Rest] Query creation - 쿼리 생성 룰
Spring Data Rest 사용시, 또는 JPA 기본 검색기능활용시, 아래의 네이밍 룰 따르면 끝! https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation Table 4. Supported keywords inside method namesKeywordSampleJPQL snippetAndfindByLastnameAndFirstname… where x.lastname = ?1 and x.firstname = ?2OrfindByLastnameOrFirstname… where x.lastname = ?1 or x.firstname = ?2Is,EqualsfindByFirstname..
2018.04.27 -
전자정부 3.7 버전에 JPA + Mybatis + Spring Data Rest 적용
Spring Data Rest 적용 예제 전자정부 3.7 버전에 JPA + Mybatis + Spring Data Rest 적용할때, 각 porting 한 작업순서는 아래와 같다. 1. egov3.7버전 다운 2. eGovFramee Template Project > Renewal 50 Common-Components 선택후, 템플릿 소스생성 3. 오라클 DDL,DML 실행(github 소스내 EGOV3.7_Mybatis_JPA_SpringDataRest_DDL_DML_v4.sql 참고) 4. 프로그램관리, 메뉴관리화면 추가개발(Mybatis용)완료 5. 전자정부3.5 JPA 동작소스 참고하여 적용시도 > 실패 > 원인: 라이브러리 버전충돌 > 조치: 최신버전으로 변경(egov, jpa 버전업) 및 xs..
2018.04.03 -
JPA 사용시, 오라클 데이터타입과 자바 타입 관계
Table 3-1 SQL and PL/SQL Data Type to Oracle and JDBC Mapping Classes SQL and PL/SQL Data Type Oracle Mapping JDBC Mapping CHAR, CHARACTER, LONG, STRING, VARCHAR, VARCHAR2 oracle.sql.CHAR java.lang.String NCHAR, NVARCHAR2 oracle.sql.NCHAR (note 1) oracle.sql.NString (note 1) NCLOB oracle.sql.NCLOB (note 1) oracle.sql.NCLOB (note 1) RAW, LONG RAW oracle.sql.RAW byte[] BINARY_INTEGER, NATURAL, NAT..
2018.03.29 -
전자정부3.7 +Mybatis + JPA 조합시, txManager -▶ transactionManager 사용
아래와 같이 txManager 가 아닌 transactionManager 란 네이밍을 사용해야합니다. JPA 내부적으로 해당이름으로 참조하기 때문입니다.
2018.03.28 -
getting error Invalid NamespaceHandler class org.springframework.data.jpa.repository.config.JpaRepositoryNameSpaceHandler
전자정부3.7 + Mybatis + JPA를 조합하려했더니 아래와 같은 오류가 뜬다...ㅠㅠ getting error Invalid NamespaceHandler class org.springframework.data.jpa.repository.config.JpaRepositoryNameSpaceHandle 일단 아래의 조합으로 해보니 해결되었다. 원인은 분석중이다... pom.xml내 org.hibernatehibernate-core4.3.11.Final org.hibernatehibernate-validator5.4.2.Final org.springframework.dataspring-data-jpa1.2.0.RELEASE context-jpa-respository.xml 파일내 참고자료 : http..
2018.03.28 -
Context initialization failed due to org.springframework.core.ResolvableTypeProvider
전자정부3.7 + Mybatis + JPA를 조합하려했더니 아래와 같은 오류가 뜬다...ㅠㅠ Context initialization failed due to org.springframework.core.ResolvableTypeProvider org.springframeworkspring-webmvc4.3.14.RELEASE 또는 org.springframeworkspring-core4.3.14.RELEASE 를 추가하니 해결되었다... 참고 자료 : https://stackoverflow.com/questions/39296487/context-initialization-failed-due-to-org-springframework-core-resolvabletypeprov/39296776#39296776
2018.03.28