월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결실전! 스프링 데이터 JPA
jparepository와 엔티티매니저
jparepository를 사용할때는 엔티티매니저를 사용하지않는건가요..? jpa로 하다가 spring datajpa로 코드를 짜보니 dirtychecking이 안되는것 같더라구요. 엔티티매니저를 사용안하면 영속성컨텍스트에도 접근을 못할 텐데,,, 그러면 엔티티매니저랑 영속성컨텍스트둘다 사용하지않는건가요?? 궁금해서 질문달아봅니당...
- 해결됨실전! 스프링 데이터 JPA
findTopN.... 에서 N의 상한점 및 DB에 걸린 SELECT 쿼리 조회 건수 제약이 있을때의 동작 방식이 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 학습 중 궁금한 내용이 생겨서 질문드립니다. JpaRepository를 구현한 뒤 규칙에 맞게 메서드 쿼리를 작성하는 것으로 간단하게 해당 Entity에 대한 SQL쿼리를 수행하는 메서드를 만들 수 있다고 알고 있습니다. 1. 혹시 findTopN... 형태의 메서드에서 N의 상한점이 있을까요? 예를 들면 findTop1000000... 이런식으로 작성해도 문제가 없는지 궁금합니다. 2. (1번 예시에서 이어서)한번에 100만건을 가져오는 건데 한번의 쿼리로 작성한 대로 100만건을 읽어와서 List형태로 받을 수 있을까요? 아니면 뭔가의 설정이나 기준으로 인해 알아서 N개씩 분할해서 여러번의 쿼리가 호출되는지가 궁금합니다. 3. 1번 예시에서 이어서)DB 자체에 제약을 걸어 SELECT문 조회시 최대K건의 데이터만 조회되도록 설정해놓은 상태에서는 어떻게 동작하는지 궁금합니다. 예를 들면 500건의 데이터만 조회되도록 DB자체에 설정을 걸어놓고 findTop5000.. 식의 쿼리를 쓴다면 SELECT 쿼리가 5000/500 = 10, 즉 10번의 쿼리가 호출되는지, 아니면 메서드 쿼리의 설정이 우선시 되어 5000건을 한 번에 읽어올지 궁금합니다. 위의 예시의 경우, 결국 EntityManager에 의해 SQL이 호출되는 것이기 때문에 DB 자체에 걸린 제약이 우선시되어 findTop5000... 을 호출했지만 한 번의 호출로 인해 500건밖에 가져오지 못할 것 같습니다. 이 경우에 나머지 4500건을 알아서 추가로 호출해올까요?... 감사합니다.
- 미해결실전! 스프링 데이터 JPA
JpaRepository의 Query Method 파싱 및 동작을 담당하는 클래스 및 인터페이스가 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 학습 중 다음과 같은 궁금함이 생겨서 질문드립니다. public interface CustomerJpaRepository implements JpaRepository<Customer, Long>{ public Customer findByName(); } 위와 같은 코드를 작성하면 findByName()이라는 메서드 이름을 파싱해서 규칙에 맞게 SQL 쿼리를 생성하고 해당 메서드를 호출 시 SQL 쿼리를 수행하는것으로 이해하고 있습니다. 혹시 저 메서드 명을 파싱해서 실제로 Query객체를 만들어 수행하는 부분의 코드는 어디서 확인할 수 있을까요? 연관된 클래스 또는 실제 동작 부분의 로직이 작성된 코드를 확인해보고 싶습니다. 감사합니다.
- 미해결실전! 스프링 데이터 JPA
화면에 맞춰진 복잡한 정적 쿼리 관련 질문입니다!
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하십니까 강사님! 강사님의 강의와 영상을 통해 성장을 꿈꾸는 주니어 백엔드 개발자 입니다!이번 회차와 쿼리 결과를 DTO로 받는 강의를 통해 궁금한 점이 생겼습니다. 만약 거래내역과 같이 특정 하나의 테이블이 아닌 관련된 여러 테이블의 값이 필요할 경우에는 단일 거래내역을 가져오기위해서는 적어도 3~4개에서 많으면 5~6개의 쿼리가 발생하게 됩니다. ex1) A a = a_repo.findById({id}); B b = b_repo.findByA_Id({a.getId()}); .... // 연관관계가 맺어져 있다면ex2) A a = a_repo.findById({id}); B b = a.getB(); ... 위와 같은 방법으로 하여 전체 거래내역을 불러오기 위해서는 총 ({전체 거래내역 갯수} * {하나의 거래내역을 가져오기 위한 쿼리 갯수}) 개의 쿼리가 발생하게 됩니다. 그래서 강사님의 강의를 듣고 JPQL로 풀어보아야겠다 해서 시도를 했습니다. 그런데, JPQL로 하다보니 SELECT와 FROM절에서 서브쿼리를 지원하지 않는다는 것을 알게되었고 아주 많은 조인이 일어나는 쿼리에서 From절에서 데이터를 걸러내지 못하고 WHERE절에 서브쿼리를 많이 넣게 되는 것도 그렇게 좋은 방법이 아니라고 생각이 들어 이렇게 질문드립니다. 1) 위와 같이, 화면에 맞춰져 있고, 많은 조인이 필요한 경우(쿼리가 복잡한 경우)에는 어떠한 방법을 추천해주시나요? (Querydsl은 아직 도입하기에는 무리인 상황입니다ㅠㅠ) 2) 거래내역과 같이 여러 테이블의 필드값들이 필요한 경우에, 하나의 거래내역을 클라이언트에게 반환하기 위해서 몇 개의 쿼리가 넘어가야 각각의 쿼리메소드보다 JPQL로 사용하는게 낫겠다고 느끼시나요? (사실, @NamedNativeQuery를 사용하여 단일 쿼리로 전체 결과를 반환하도록 리팩토링 하였고 성능 향상의 이점도 얻었지만, 더러워진 Entity 클래스와 유지보수에 대한 걱정이 있었는데 강사님 강의를 보고 조금 더 좋은 방향으로 고쳐야겠다는 생각이 들었습니다ㅠ)
- 미해결실전! 스프링 데이터 JPA
이클립스에서의 콘솔에서 sql 쿼리문 보는 방법과 yml 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 혹시 이클립스에서도 콜솔 로그에서 sql 문을 볼 수 있는 방법을 알 수 있을까요? IntelliJ처럼 하위부분 클릭을 해도 이클립스에서는 반응하지 않습니다.. 그리고 현재 yml에서 logging level의 하위 부분이 '[org.hibernate.sql]': debug '[org.hibernate.type]': trace 위처럼 처리하는 것이 맞나요.? 다른 것들은 '[]'로 감싸주지 않아도 괜찮은데 저 두개는 이클립스 자체 IDE에서 저렇게 처리하지 않으면 에러가 나도록 표시되고 있는 중입니다.. 두 번째 말씀드린 것 때문에 문제가 될 수도 있을 것 같아 질문 드립니다.. yml을 처음사용해봐서 익숙치가 않아 어떻게 찾아봐야할지 감이 안오는 상황입니다.. 감사합니다.!
- 해결됨실전! 스프링 데이터 JPA
@Param 생략
@EntityGraph(attributePaths = {"team"})List<Member> findEgByUsername( String username); 일 때와, @EntityGraph(attributePaths = {"team"})List<Member> findEgByUsername(@Param("username") String username); 일 때 결과 값이 똑같이 나오는걸 확인했는데, @Param은 직접 JPQL에 "~~ = :username"을 지정하지 않는 이상, 쿼리 메소드 이름 기능으로 사용할 때, 생략해도 되고 생략 안해도 되는 게 맞나 확인차 질문드립니다.
- 해결됨실전! 스프링 데이터 JPA
쿼리 메소드 우선순위 질문
@Query("select m from Member m where m.username = :username and m.age = :age") List<Member> findQueryByUsernameAndAgeGreaterThan( @Param("username") String username, @Param("age") int age); 일 때, 쿼리 메소드 이름 기능이 작동하지 않고 @Query 안에 정의한 JPQL이 작동하는데요, 그래서 쿼리 메소드 이름 기능이 처음에는 @Query가 들어가면 작동안하나 보나 했는데 @Query(value = "select m from Member m left join m.team t", countQuery = "select count(m) from Member m") Page<Member> findByAge(int age, Pageable pageable); 일 때는, 쿼리 메소드 이름 기능이 작동하는 것 같기도 해서 질문드립니다. 쿼리 메소드 이름 기능은 언제 실행되고 언제 실행이 안되는지 알고 싶습니다. @Query("select m from Member m where m.username = :username and m.age = :age")처럼 @Query의 JPQL에 m.age = :age 처럼 파라미터가 있을 때 메서드 이름 기능이 무시되고 @Query 내용이 실행되는 건지 findQueryByUsernameAndAgeGreaterThan(@Param("username") String username, @Param("age") int age) 처럼 매개변수에 @Param이 있을 때 쿼리 메소드 이름 기능이 무시되고 실행되는 건지 아니면 Page 반환타입일 때만 @Query가 있어도 쿼리 메소드 이름 기능이 작동하는 건지 궁금합니다.
- 미해결실전! 스프링 데이터 JPA
인텔리제이 edu 로 공부중인 학생입니다!
안녕하세요 선생님 jpa 강의를 듣고있는 학생입니다. 다름이아니라 제가 컴퓨터를 포맷한 이후로 강의를 다시듣는데 인텔리제이 환경이 업데이트가 많이 됐는지 불편한점이 있습니다. 현재 lombok의 getter setter기능을 사용하는데 빨간색글씨로 추천호출로 getCommand가 바로 나오지 않고 인식을 못하는 문제가 있습니다. 그렇다고 lombok이 설치되어 있지 않은가? 라고 한다면 그건 또 아닌 것이 테스트 환경에서는 작동을 잘 하고 있습니다... plugin에서는 MarketPlace,Installed 두 곳 전부다 노출이 되지않고, 강의를 듣는 것은 가능하지만 현재 환경에서 상당히 불편한 부분이 있는 거 같습니다. 현재 인텔리제이는 edu 2021.03버전을 사용중이고 java의 경우 17.0.1 version을 사용중입니다. 그밖에 H2의 경우 1.4.200 버전을 사용중입니다. 혹시 제가 할 수 있는 방법이 있을까요?
- 미해결실전! 스프링 데이터 JPA
자식 엔티티로의 영속성 전이에 대해서 질문 있습니다.
먼저 다음과 같이 부모 자식 엔티티가 있습니다. @Entity public class Leaf { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "tree_id", referencedColumnName = "id") private Tree tree; } @Entity public class Tree { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy = "tree", cascade = CascadeType.ALL, orphanRemoval = true) private List<Leaf> leaves = new ArrayList<>(); } Tree 엔티티는 부모이고 TreeRepository가 있는 상태입니다. Leaf 엔티티는 자식이고 Tree에 완전히 종속된다고 생각하여 Repository를 안 만들었습니다. 이 때, 비영속된 Tree에 Leaf를 추가하고 save를 시키면 영속성 전이로 인해서 Leaf들까지 전부 다 insert 되는 것은 확인하였습니다. 여기서 질문은 이미 영속화가 되어 있는 Tree를 findById() 로 찾아온 다음에 연관관계를 매핑한 새로운 Leaf를 리스트에 추가하면 insert가 되지 않았습니다. (얄팍한 지식으로 더티체킹처럼 list에 새로운 Leaf가 추가되었네? -> insert 이렇게 될 줄 알았습니다.) 여기서 Leaf를 추가하려면 LeafRepository를 따로 만들어야 할까요?? 저는 Leaf가 Tree에 완전히 종속되는 엔티티인데 Tree를 통하지 않고 Repository를 따로 만들면 데이터가 불일치할 수 있는 통로가 생긴다고 생각해서 안 만들었었습니다.
- 미해결실전! 스프링 데이터 JPA
Pageable 파라미터
안녕하세요 @GetMapping("/members") public Page<Member> list(Pageable pageable){ return memberRepository.findAll(pageable); } 저 Pageable pageable 를 구현체인 PageRequest 라는 객체를 생성 해주신다고 했습니다. 이런 과정은 argumentResolver 랑은 관계가 없는건가요 ?? (궁금해서 앞에 @ModelAttribute 를 붙여보았는데 오류발생)
- 미해결실전! 스프링 데이터 JPA
EntityGraph
안녕하세요 이해가 조금 안가는 부분이 있어서 글 질문드립니다. 17:53쯤 보시면 findAll() 메서드는 JpaRepository 인터페이스가 가지고 있는 메서드 입니다. 그런데 @Override @EntityGraph(attributePaths = {"team"}) List<Member> findAll(); 이렇게만 적어 주셨는데 이게 왜 쿼리가 되는지가 신기합니다.. 오버라이드 해서 따로 쿼리문을 적어주지 않으시고(쿼리를 재정의 하지 않으시고) team 만 연관짓게 해주셨는데.. 어떻게 Member 엔티티를 다 끌고 오는것인가요.. findBy... 이런 메소드 이름으로 가져오는 형태도 아닌데 이게 궁금합니다 두번째 질문입니다. 21:29 마지막 부분에서 Member.all 같은 @NamedEntityGraph 메서드는 @NamedQuery 와는 다르게 query="..." 를 직접 사용할수가 없더라구요.. (Member 엔티티에서) 그래서 findBy,.. 같은 이름으로 쿼리를 조회해 오는 (메서드 쿼리랑) 같이 조합해서쓸수밖에 없는거죠?
- 미해결실전! 스프링 데이터 JPA
11:52 질문 flush
안녕하세요 이전 강의에서 jpql을 쓰면 flush는 자동으로 돤다고 알고있습니다. 그런데 11:52에서 jpql을 쓰시고 또 다시 flush를 하면 다른점이 있을까 궁금해서 질문합니다 감사합니다 (flush를 주석처리해도 동일하게 age=41이 나오긴합니다)
- 해결됨실전! 스프링 데이터 JPA
무제한 스크롤 관련 질문 드립니다.
타임라인 형태 조회 API를 제공 하려다가 중복에 관한 문제에 직면하여 조언을 얻고 자 합니다. 데이터가 로드 된 후. 신규 데이터가 등록 / 삭제 등 프로세스가 일어 난 다음에 다음 페이지를 호출 할 때 생기는 이슈 입니다. pageRequest, slice로 구현 시 신규 데이터가 입력 된 경우 중복으로 데이터가 보이는 케이스가 생기고, 삭제 된 경우 예상치 못하게 데이터가 빠지는 현상이 있습니다. ex) 주어진 데이터 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 size 5 1페이지에 10, 9, 8, 7, 6 이 뿌려 진 상태 조회 된 상태에서 신규 데이터 12, 11 이 추가 됩니다. 이 상태에서 2페이지를 호출 합니다. -> db에서는 12~8까지를 1페이지 7~3까지를 2페이지로 판단하여 7, 6, 5, 4, 3 을 더보기로 뿌려주며 7, 6 번이 중복으로 리스트에 보이게 되고 있습니다. 이 강의는 들은지 4개월이 넘었는데 모바일 더보기 관한 내용을 말씀하셨던 것 같아서 오늘 다시 들어봤지만 Slice의 내용 이었고 제가 직면한 이슈는 아직 해결 되지 않았네요. 조사를 좀 해보니. 오라클의 rownum 같은..? 성격의 데이터로 어디까지 데이터를 불러 왔는지에 대한 값등으로 해결 한다고 찾긴 했는데요. 그 방향으로 native쿼리로 해결을 해볼까 고민하다가 영한님/배민에서는 어떻게 처리 할까 궁금해서 질문을 남깁니다. 제가 못 찾는건지 jpa에서 이러한 이슈 해결해주는 기능을 지원해주는지도 궁금합니다. (없는 것 같네요 ㅠ) 날씨 추운데 건강 챙기세요. 명강의 잘 보고 있습니다.
- 미해결실전! 스프링 데이터 JPA
안녕하세요 다시 들으니 햇갈리네요 Slice
안녕하세요 Slice 는 페이지 번호랑 상관이 없는거같은데 ( 페이지 total을 안져옴) -초반에 말씀해주신 모바일 설명 을 듣고 Silce 는 무한 스크롤 할때 사용하는거같은데... 그런데 페이지 번호 메소드는 가지고 있는게 햇갈립니다 assertThat(page.getNumber()).isEqualTo(0); //페이지 번호 (14:53 참고) =================== 두번째 질문 map() 으로 dto 변환은 람다식 map() 이거랑 일치하는거죠 ??
- 미해결실전! 스프링 데이터 JPA
쿼리만드는 것에 질문이 있습니다
JpaRepository를 상속받고 어떤 쿼리를 만들고 싶습니다 예를 들어 유저정보 중 lastName 과 city를 기준으로 검색하는 쿼리를 만들고 싶은데 검색파라미터로 lastName, city 가 있을 때 lastName = null, city = null전체 데이터 조회 lastName != null, city = nulllastName 으로 같은 것 검색 lastName = null, city != nullcity 로 같은 것 검색 lastName != null, city != nulllastName , city 모두 같은 것 검색 이렇게 되는 쿼리 함수를 작성하고 싶은데 이걸 각각 함수를 만들어서 하지 않고 한 번에 쿼리를 빌드할 수 있는 방법이 있을까요?
- 미해결실전! 스프링 데이터 JPA
NamedQuery
@NamedQuery는 어플리케이션이 로딩 시점에 문법 에러가 있으면 에러를 뱉는 이유가 어플리케이션이 로딩할때 쿼리문을 파싱해서 보관 하고 있다고 생각하면 될까요 ? 그래서 결론적으론 파싱 과정에서 에러가 있으면 오류를 뱉는거구요.
- 미해결실전! 스프링 데이터 JPA
update 실무
안녕하세요 ㅎㅎ 실무적으로 궁금한게 하나 있어서 질문드립니다 update 쿼리는 실무에서도 100% 더티체캉으로 해결하나요 ??
- 미해결실전! 스프링 데이터 JPA
jpaRepository 의존성 주입 중복문제????
안녕하세요 김영환 강사님강의를 들으면서 다른 작업시 이러한 문제가 발생해서 진행이 안됩니다. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'adminBoardController' defined in file [C:\Users\web\projects\xxx-api\build\classes\java\main\com\xxx\xxxapi\controller\admin\AdminBoardController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'articleService' defined in file [C:\Users\web\projects\xxx-api\build\classes\java\main\com\xxx\xxxapi\service\ArticleService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'articleRepository' defined in com.xxx.xxxapi.repository.board.ArticleRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Reason: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article]; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article] Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'articleService' defined in file [C:\Users\web\projects\xxx-api\build\classes\java\main\com\xxx\xxxapi\service\ArticleService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'articleRepository' defined in com.xxx.xxxapi.repository.board.ArticleRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Reason: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article]; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'articleRepository' defined in com.xxx.xxxapi.repository.board.ArticleRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Reason: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article]; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article] Caused by: org.springframework.data.repository.query.QueryCreationException Could not create query for public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Reason: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article]; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article] Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract com.xxx.xxxapi.model.board.Article com.xxx.xxxapi.repository.board.ArticleRepository.findByHeadIdxAndAIdxNot(int,int)! Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article] Caused by: java.lang.IllegalArgumentException: Unable to locate Attribute with the the given name [AIdx] on this ManagedType [com.xxx.xxxapi.model.board.Article] 어떤 문제인지 부탁드립니다
- 미해결실전! 스프링 데이터 JPA
save 질문드립니다.
jpa 커리큘럼 듣고있는 학생입니다. 첫 커리큘럼 강의 merge를 쓰지말라고 하셨는데(*1), 스프링 데이터 jpa의 save를 보면(SimpleJpaRepository구현체) merge를 사용하고 있습니다. 그러면 실무에서 스프링 데이터 jpa를 사용할 때 save기능을 사용하여야 하는것인지 사용하지 말아야 하는것인지 가이드 라인이 있을까요? *1.DB에서 데이터를 가지고 오기때문에 sql이 한번 나가는 문제, DB에서 가지고 온 데이터 수정할 때 일정 필드값이 누락될 경우 누락된 값은 변경감지와는 달리 없어지기 때문 등등의 문제로
- 미해결실전! 스프링 데이터 JPA
테이블생성
안녕하세요 강사님. 제가 강의를 다듣고 혼자 프로젝트를 만들어 보는 중인데요.. jpa ddl설정에서 계속 테이블이 생성이 잘 안됍니다... 딱히 오류도 안뜨고.. 뭐가 문제인지 모르겠습니다. ㅠㅠ 디비 접속 아이디와 비밀번호는 일부로 지웠습니다.