분류 전체보기 (16) 썸네일형 리스트형 JPA JPQL 파라미터 객체(Object)로 한 번에 넘기기 파라미터의 수가 많아지는 경우, 객체로 한 번에 넘기는 것이 편해보였다. 기존 코드 @Query(value = "SELECT s " + "FROM Student s " + "LEFT JOIN s.team t " + "WHERE current_timestamp BETWEEN t.startDate AND t.endDate " + "AND t.category_id IN :category_id " + "AND t.is_public = :isPublic") List find(@Param("categoryList") List categoryList, @Param("isPublic") Flag isPublic); 위의 코드는 파라미터의 수가 적지만.. 실제 코드에서는 쿼리도 복잡해지고 파라미터도 점점 많아지고 있던 .. JPA ConverterNotFoundException: No converter found capable of converting from type 에러 해결 ConverterNotFoundException: No converter found capable of converting from type 문제 상황 @Query(nativeQuery = true, value = "SELECT s.id, s.email, s.name " + "FROM student s " + "LEFT OUTER JOIN team t ON s.team_id = t.id " + "WHERE now() BETWEEN t.start_date AND t.end_date " + "AND t.category_id IN :categoryList " + "AND t.is_public = :isPublic") List find(@Param("categoryList") List categoryList, .. JPA 양방향 매핑 Entity 한 번에 저장하기 Team과 Student를 1:N 관계로 하고, Team에서 해당 팀에 속한 학생들의 리스트를 보고 싶었고 Student에서는 그 학생이 속한 팀에 접근하고 싶었다. 그래서 @OneToMany, @ManyToOne 양방향 매핑을 사용하였다. 기존 코드 // Team.java public class Team { @OneToMany(mappedBy = "team") private List studentList; } // Student.java public class Student { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; } 위는 관련되지 않은 것을 제외한 Entity의 코드이다. teamRepos.. 개발 블로그 새로 시작한 이유 지나고 나면 기억이 안 난다. 그래서 나는 사진을 자주 찍어둔다. 기억이 아예 안 나다가도 사진을 보면 '아 맞아 뭘 먹었고 뭘 했었다~' 기억난다. 캘린더 보다가도 기억이 안 나서 사진 보면 다 기억난다 ㅋㅋ 프로젝트를 진행하고 난 뒤엔 그 과정이 기억이 안 난다. 어디에서 무슨 문제가 있었고 어떤 부분에서 어떻게 의견이 부딪혔고 사소한 것을 정할 때의 이유 하나하나가 기억나지 않는다. 분명히 나는 크고 작은 어려움을 겪고 프로젝트를 마무리 했는데 그 과정을 나중에 생각해보면 생각이 안 난다. 그래서 기록을 시작했다. 회의를 하면 회의록을 작성했다. 사소하게라도 결정된 사항이 있으면 메모장에라도 적어두거나 단톡방에 보내놓았다. 우리 몇 시에 만나기로 했더라 오늘 뭐하기로 했더라 오늘 뭐 정해야 하지 등.. Not a managed type: class java.lang.Object 에러 해결 java.lang.IllegalArgumentException: Not a managed type: class java.lang.Object 에러 해결 상황 JpaRepository를 상속받는 repository를 만들어서 실행시켰더니 제목과 같은 에러가 발생했다. 해결 기존 코드 public interface TeamRepository extends JpaRepository {} 이 repository가 어떤 Entity를 관리해야 하는지 찾지 못해서 발생한 에러였다. 아래와 같이 관리할 entity의 타입과 id의 타입을 넣어주었다. public interface TeamRepository extends JpaRepository {} ;; 프로젝트를 오랜만에 만드니까 별 걸 다 빼놓고 한다..; 참고.. 'Basic' attribute type should not be a container 에러 해결 'Basic' attribute type should not be a container 에러 해결 상황 jpa로 entity 작성 중 team과 student를 1대N 관계로 두고 team에서 studentList에 접근하고자 했음 해결 @OneToMany 를 붙여줘서 연관 관계 매핑을 시켜줌으로써 해결 @OneToMany private List studentList; 참고 https://www.inflearn.com/questions/601534/address-order-%ED%81%B4%EB%9E%98%EC%8A%A4 이전 1 2 다음