본문 바로가기
반응형

개발/Spring71

[Spring boot Security] "/" 입력시 Login 페이지로 이동 안하는 문제점 Spring boot는 기본적으로 해당 의존성을 추가하면 기본값으로 "/" 입력시 login 페이지로 이동한다. 그러나 가끔가다가 정상적으로 작동하지않을때가 있다. 그럴때 Maven이면 Maven Reimport, Gradle이면 Gradle Reimport 하면된다. 이 글에서는 Maven이므로 Maven으로 진행해보도록 하겠다. Maven클릭해준다. "/" 입력시 login 페이지로 이동하지 않는분들은 Dependencies에 빨간항목이 없을것이다 새로고침 버튼을 누르면 정상적으로 Import가 되는것을 볼 수 있을것이다. 위의 과정을 문제없이 진행했다면 해당페이지를 볼 수 있을것이다. 2020. 2. 3.
[Intellij] 실행버튼 활성화 안 되었을때 해당 사진처럼 실행버튼, 디버깅버튼이 활성화가 되지 않았을때 Add Configuration... 버튼클릭 + 버튼 클릭 프로젝트에 알맞는 버튼클릭 (여기서는 Application으로 진행) Main Class를 지정 (Use classpath of module 지정)을 해준후에 OK 버튼클릭 활성화 완료 2020. 2. 2.
[JPA] spring boot gradle QueryDSL 설정하기 build.gradle 파일 plugins 부분에 빨간색안의 내용을 추가한다. dependencies 부분에 위와같이 추가한다. 위와같은 내용을 추가한다. build.gradle 을 Reimport한다. Reimport가 정상적으로 되었으면 compileQuerydsl을 더블클릭해주면 설정해준경로에 QDomain이 생성된다 2020. 1. 25.
[JPA] Spring boot JPA N+1 해결방법 1. fetch join : Collection 일때는 사용하지 못함 2. @BatchSize 어노테이션 이용 3. hibernate.dafault_batch_fetch_size 설정 위 세가지 방법으로 N+1 문제를 해결할 수 있다..! 2020. 1. 21.
[JPA] @Embeddable 사용시 주의사항 1. Equals() 와 hashcode() 메소드를 @Override 하여 구현 2. @Override 하여 구현할때 필드값으로 비교하는것이 아니라 getter를 이용하여 비교 why? 프록시객체에서는 필드값으로 조회하면 비교를 못하는 상황이 발생할 수 있음. 2020. 1. 19.
[spring boot] spring boot 상대경로 설정시 경로를 못찾는 오류 (AppData\Local\Temp\tomcat-docbase) 본인의 예상대로라면 realpath(프로젝트명) 와 저장시킬 폴더의 path 를 합쳐서 프로젝트폴더/static/image 라는 폴더에 이미지가 저장될줄 알았다. 그러나 알 수 없는 경로를 내뱉으며 지정된 경로를 찾을 수 없다는 오류를 띄웠다. 오류의 원인은 간단했다. 본인의 thymeleaf를 사용해왔기때문에 위의 파일구성을 보면 별도의 webapp 폴더를 구성하지 않았다. 아무런 설정도 건드리지 않은채로 src/main 아래에 webapp을 만들고 이미지를 저장시킬 폴더구조를 만들고 실행하게 된다면 정상적으로 작동하는것을 볼 수 있다. 2020. 1. 18.
[JPA] could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException: could not execute statement JPA에서 column에 한글을 입력할때 아래와 같은 오류가 발생하는 경우가있다. 위와같은오류가 발생할경우 보통 아래와 비슷한메세지도 같이 보일것이다. 이것은 Database가 생성될때, 혹은 생성하였을때 한글을 지원하지않는 인코딩속성으로 지정되서 발생되는 오류이다. 해결방법은 한글을 지원하는 인코딩속성으로 변경하거나 재생성하면된다. 데이터베이스의 인코딩속성을 utf8_general_ci로 바꾸어 생성한 후 다시 실행한다면 데이터가 정상적으로 들어가는것을 볼 수 있다. 2020. 1. 14.
[spring boot] MultipartFile file upload 화면을 구성하는 html html 소스는 별다른 설명없이 지나가도록 하겠습니다. 위의 이미지와 아래의 이미지를 합친것이 saveImage function 입니다. (편집할줄 몰라서 이렇게 넣습니다) 주석에서 보시는바와 같이 데이터들을 추가하고 추가된 데이터를 서버로 전송해줍니다. 서버에서는 title, category, files의 값들을 @RequestParam을 이용해서 받습니다. Service단에서는 필요한 정보를 받은후에 MultipartFile.transferTo() 메소드를 이용하여 원하시는 경로로 이동시키시면 끝입니다..!! 이 이미지를 추가하고 저장을 누르시면 정상적으로 이동된것을 보실 수 있습니다. 2020. 1. 13.
[Spring boot JPA] Error executing DDL 오류 엔티티를 2개를 선언을 하고 실행을 시키면 Board 와 Reply 테이블이 생성될것이라고 생각했다. 하지만 Error executing DDL 오류가 나면서 create table board {~~} sql문은 안 나가는것을 확인할 수 있다. 이유는 Board 엔티티의 좋아요개수를 표시하려고 만든 like column때문이었다. like는 데이터베이스의 예약어이기때문에 sql문이 오류가 나는것이었다. like 의 컬럼명을 예약어가 아닌것으로 바꾼 후 실행을 하면 정상적으로 생성되는것을 확인할 수 있다. 2020. 1. 6.
[spring boot]intellij gradle mariadb 연동 build.gradle 파일에 implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.4.1' 추가후 Reimport Gradle Project 클릭 application.properties 파일에 접속정보를 입력 여기까지 한 후 실행하면 접속후 member테이블이 정상적으로 생성되는것을 확인할 수 있다. 2020. 1. 6.
[jpa] 프록시란 ? 프록시란 ? - 실제 엔티티 대신에 사용되는 객체로서, 원본 엔티티를 상속받는다. 그렇기때문에 타입체크시에 주의해야함. 프록시의 특징 - 프록시 객체는 처음 사용할때 한번만 초기화된다. - 프록시 객체를 초기화 할 때, 프록시 객체가 실제 엔티티로 변환되는것이 아니라 프록시 객체를 통해서 실제 엔티티 객 체에 접근이 가능한 것이다. - 영속성 컨텍스트에 실제 엔티티가 이미 존재한다면 getReference()를 호출해도 실제 엔티티를 반환 프록시 사용 - 지연로딩때 사용된다. 출처 : 인프런 - 자바 ORM 표준 JPA 프로그래밍 - 기본편 [김영한] 2020. 1. 5.
[JPA] @MappedSuperclass 특징 @Map@MappedSuperclass 특징 1. 상속관계 매핑이 아니다. 2. 조회가 불가능하다 3. 직접 생성해서 사용할일은 거의 없으므로 추상클래스로 만드는것을 권장한다. 4. 테이블과 관계없으며 여러엔티티에서 공통으로 사용하는 매핑정보를 모으는 역할을 한다. ※참고사항 : @Entity클래스는 @Entity나 @MappedSuperclass 로 지정한 클래스만 상속가능하다. 2020. 1. 2.