분류 전체보기
-
JPQL작성 (native Query) No converter found capable of converting from type 에러해결하기JPA 2023. 12. 17. 15:03
JPA프로젝트에서 통계쿼리를 JPQL로 작성하고 리턴하다 발생한 에러인데 해결방법을 공유한다. 오류 내용 org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type JPQL로 작성한거라 Entity도 따로 만들수가 없었다. 일반적인 dto Class로 리턴하려다가 에러가 발생. 결론적으로 Interface로 리턴해야한다. public interface JqplResponse { long getMember_rank(); //순위 long getCount(); //건수 } 엔티티처럼 카멜케이스를 자동으로 바꿔주지 않기 때문에 JPQL에서 컬럼명을 바꿔주던지, 컬럼 원래..
-
맥 m1칩 인텔리제이 SVN 연동하기 (with. Homebrew)IntelliJ 인텔리제이 2023. 11. 26. 16:46
본인 맥 m1칩 노트북이고 svn 연결하는 방법 정리이다. Homebrew를 이용하여 설치한다. 터미널에서 아래의 명령어 입력 brew options subversion arch -arm64 brew install subversion ※ m1칩은 arch -arm64를 앞에 꼭 넣어줘야한다. 보통 홈브류로 설치하면 아래의 경로에 폴더가 생성된다. /opt/homebrew/opt/subversion/bin/svn 이경로를 인텔리제이 환경설정의 Subversion 실행파일 경로에 넣는다. 만약에 경로를 넣었는데 경로가 없으면 인텔리제이에서 오류메세지가 나온다. 이제 svn url을 입력하자 url을 입력하고 확인을 누르면 svn 로그인 창이 나온다. 로그인이 완료되면 이클립에서 봤던것처럼 svn 폴더 하위에..
-
JPA JpaRepository 에서 @Query 쿼리작성하여 사용하기(nativeQuery)JPA 2023. 11. 18. 21:25
JPA에서도 마이바티스처럼 어려운 쿼리를 작성하여 사용할 수 있다. @Query 를 사용하여 여러가지 방법으로 파라미터를 바인딩하여 사용하는 예제다 주의할점은 nativeQuery = true 옵션을 반드시 넣어야한다 1. 파라미터 순서로 바인딩 - 파라미터 순서만 맞으면 된다. - 쿼리문안에서 파라미터는 순서대로 ?1, ?2, ?3, ... 으로 받는다. - 가독성이 떨어지고 명확하지않아 비추천방법이다. import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Par..
-
[JPA] 즉시로딩과 지연로딩이란? (FetchType.EAGER, FetchType.LAZY)JPA 2023. 11. 14. 16:54
JPA에서 연관관계를 조회할 때 참조하는 객체들의 조회 시점을 선택할 수 있도록 두 가지 방법을 제공하는데 즉시 로딩(EAGER Loading)과 지연 로딩(LAZY Loading)이다. 각 연관관계의 default 속성 - @ManyToOne : EAGER - @OneToOne : EAGER - @ManyToMany : LAZY - @OneToMany : LAZY 1. 즉시 로딩(EAGER) - @ManyToOne(fetch = FetchType.EAGER) - 엔티티를 조회할 떄 연관된 엔티티도 함께 조회한다. - 즉시로딩을 사용하면 실제 Member 엔티티를 불러온다. - 즉시 로딩을 최적화하기 위해 가능하면 조인쿼리를 사용한다. 2. 지연 로딩(LAZY) - @ManyToOne(fetch = Fe..
-
JPA 오류 java.lang.IllegalStateException: Cannot call sendError() after the response has been committedJPA 2023. 11. 11. 14:38
java.lang.IllegalStateException: Cannot call sendError() after the response has been committed Before 게시판 Board.java @Table(name = "jpa_board") @Entity @Getter @Setter @ToString @NoArgsConstructor public class Board { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "JPA_BOARD_SEQ") @Column(name="bno") private int bno;//게시판(PK) @Column(name="title", columnDefinition = "varchar..
-
오류 org.hibernate.InstantiationException: No default constructor for entity , with 롬복JPA 2023. 11. 9. 16:52
org.hibernate.InstantiationException: No default constructor for entity Entity를 JpaRepository에서 가져올 때 기본 생성자를 사용하는데, 생성자가 없어서 오류가 발생한다는 내용. entity 클래스에 파라미터가 없는 기본생성자를 만들어주는 @NoArgsConstructor 어노테이션을 추가한다. BEFORE Board.java @Table(name = "JPA_BOARD") @Entity @Data @Builder public class Board { ....생략 } AFTER @NoArgsConstructor 추가 @Table(name = "JPA_BOARD") @Entity @Data @NoArgsConstructor public..
-
스프링 시큐리티 자동로그인 Remember-me 안될 때 해결방법Spring Security 2023. 11. 5. 21:05
일반적인 스프링시큐리티 자동로그인 설정을 하였지만 여러 문제가 발생 대표적인 문제는 브라우저에 remember-me 쿠키가 생성 안되는 문제다. 1. 시큐리티 설정파일에 SecurityService를 @Autowired로 의존성을 주입시킨다. SecurityConfig.java @EnableWebSecurity public class SecurityConfig { //스프링에서 제공하는 UserDetails 서비스의 loadUserByUsername 메소드를 구현한 서비스 @Autowired private SecurityService securityService; @Bean public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws ..
-
로지텍 G304마우스 무음스위치로 교체하기취미 2023. 11. 5. 14:53
이 마우는 정말 게임,사무용으로 좋은데 한가지 단점이라면 클릭음이 너무 크다. 그래서 무음스위치로 교체했다. 분해의 난이도는 쉬운편인데 기존의 스위치를 제거하기위한 납 디솔더링 작업이 쉽지않다. 납을 흡수하는 심지 브레이드가 있으면 수월하게 납을 제거할 수 있다. 사전준비물 1. 심지 브레이드 (납을 흡수하는 심지 테이프), 기존 스위치 빼낼때 필요 2. 인두기, 납 3. 카일 무소음 스위치 납을 녹여 심지 브레이드로 흡수 한 뒤 기존 스위치를 빼낸다. 구입처 : http://itempage3.auction.co.kr/DetailView.aspx?ItemNo=D685995388&frm3=V2 구스 심지 납땜 브레이드 구리 와이어 제... 11,460원 itempage3.auction.co.kr 카일 무소..