Spring 4 + JSP + Maven + Hibernate 4 + Spring JPA 2 + SQLServer(MSSQL) 2017 + Intellij 하면서 정리
1. JSP
1) <form:input> 계열 : path attribute를 꼭 지정하게 되어 있는데 이 path가 렌더링될 때 name이 되므로 name을 지정해도 무시된다.
2. Maven
1) java 파일 내에서 library를 못찾아오면
- (intellij에서는) pom.xml 우클릭 -> maven -> download sources, 다운로드 후 같은 메뉴에서 reimport
3. Hibernate + Spring JPA + SQLServer(MSSQL)
1) @Query (Query annotation)
- nativeQuery 옵션
-- true : query도 native고 결과도 native. Entity가 아니라 List로 반환됨.
-- false : query를 Entity 기준으로 작성해야 하고 반환되는 값도 해당 Entity
- parameter를 지정하고 싶으면
-- 함수 내 인자에 "모두" @Param("NAME")을 붙이거나
-- 순서대로 ?1, ?2, ...
4. Intellij
- DB를 바로 연결할 수 있어서 좋다. query를 날리거나 직접 데이터를 수정하는 것도 가능.
5. 기타
1) 전자정부 프레임워크를 쓰면서 발생한 현상. 오래 전이라 잘 기억은 안나지만 일단 기록.
DB 정보를 jasypt로 암호화해서 .properties 파일로 저장 -> datasource를 설정하는 .xml 파일에서 참조해야 하는데 본서버에서 아무리해도 DB에 접속을 못하는 현상이 발생했다. 매우 많은 시간을 들여 디버깅해보니 datasource를 불러오기 전에 db에 접속하려고 하는 문제였던 것 같다. -> xml 파일을 불러오는 순서를 정할 수 있나 엄청 찾아보다가 결국 datasource만 .java 파일로 빼고, 이런 식으로 순서를 지정해주었다.
@Order(value=1)
@Configuration
@EnableTransactionManagement
@PropertySource("classpath:/properties 경로")
public class DBConfig { ... }
참고로 전자정부 프레임워크는 버전 별로 호한성이 그다지 좋지 않다. 잘 알고 다운받자.
6. 여담
- 다음 프로젝트는 저런 스택을 쓰지 않을 것이다.
1) <form:input> 계열 : path attribute를 꼭 지정하게 되어 있는데 이 path가 렌더링될 때 name이 되므로 name을 지정해도 무시된다.
2. Maven
1) java 파일 내에서 library를 못찾아오면
- (intellij에서는) pom.xml 우클릭 -> maven -> download sources, 다운로드 후 같은 메뉴에서 reimport
3. Hibernate + Spring JPA + SQLServer(MSSQL)
1) @Query (Query annotation)
- nativeQuery 옵션
-- true : query도 native고 결과도 native. Entity가 아니라 List로 반환됨.
-- false : query를 Entity 기준으로 작성해야 하고 반환되는 값도 해당 Entity
- parameter를 지정하고 싶으면
-- 함수 내 인자에 "모두" @Param("NAME")을 붙이거나
-- 순서대로 ?1, ?2, ...
4. Intellij
- DB를 바로 연결할 수 있어서 좋다. query를 날리거나 직접 데이터를 수정하는 것도 가능.
5. 기타
1) 전자정부 프레임워크를 쓰면서 발생한 현상. 오래 전이라 잘 기억은 안나지만 일단 기록.
DB 정보를 jasypt로 암호화해서 .properties 파일로 저장 -> datasource를 설정하는 .xml 파일에서 참조해야 하는데 본서버에서 아무리해도 DB에 접속을 못하는 현상이 발생했다. 매우 많은 시간을 들여 디버깅해보니 datasource를 불러오기 전에 db에 접속하려고 하는 문제였던 것 같다. -> xml 파일을 불러오는 순서를 정할 수 있나 엄청 찾아보다가 결국 datasource만 .java 파일로 빼고, 이런 식으로 순서를 지정해주었다.
@Order(value=1)
@Configuration
@EnableTransactionManagement
@PropertySource("classpath:/properties 경로")
public class DBConfig { ... }
참고로 전자정부 프레임워크는 버전 별로 호한성이 그다지 좋지 않다. 잘 알고 다운받자.
6. 여담
- 다음 프로젝트는 저런 스택을 쓰지 않을 것이다.