월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 데이터 JPA
\dt Did not find any relations.
jdbc 관계형 데이터 베이스와 자바 강의에서 jdbc 를 통해 CREATE table 을 완료하고 터미널에서 \dt 를 하면 Did not find any relations. 이렇게 나오면서 아무것도 보이지 않습니다. 그래서 테이블(account)을 터미널에서 직접 생성하고 다음 강좌에 있는 내용들을 실행하니 테이블에 데이터들이 안들어가는 문제가 발생했습니다 . 의존성 추가하고 package sample;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class Application { public static void main(String[] args) throws SQLException { String url = "jdbc:postgresql://localhost:5432/postgres"; String username = "ijin"; String password = "0527"; try(Connection connection = DriverManager.getConnection(url, username, password)) { System.out.println("Connection created: " + connection); //String sql = "CREATE SCHEMA account"; String sql = "CREATE TABLE account (id int, username varchar(255), password varchar(255));"; try(PreparedStatement statement = connection.prepareStatement(sql)) { statement.execute(); System.out.println("Connection created: " + connection); } } }} 이렇게 코드를 쳤는데 뭔가 잘못되었나요?
- 미해결스프링 데이터 JPA
소스코드는 어디서 볼 수 있을까요?
소스코드는 어디서 볼 수 있을까요?
- 미해결스프링 데이터 JPA
table 생성과 select 문에 대한 질문
안녕하세요. 다름이 아니라, 제가 처음에 data 를 hibernate 로 활용해 넣었을때는 잘 들어갔는데 후에 다시 실행을 하니 이미 같은 key 가 있는 데이터가 있다고 뜹니다. 아래와 같이 설정을 해도 똑같은 key 가 있는 데이터가 뜬다고 하는데, 그러면 코드를 주석처리 하거나 table 을 지우는 수 밖에 없는 건가요? spring.jpa.hibernate.ddl-auto=update
- 미해결스프링 데이터 JPA
스프링 데이터 RepositoryTest 관련 질문
안녕하세요 다름이 아니라 스프링 데이터 Common 1. 리포지토리 강의를 제가 만든 movie 객체로 만들고 session 에 저장을 하는 등 강의를 따라하고 MovieRepositoryTest 함수를 실행했는데, Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Failed to replace DataSource with an embedded database for tests. If you want an embedded database please put a supported one on the classpath or tune the replace attribute of @AutoConfigureTestDatabase. at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:797) 위와 같은 에러가 뜹니다. 참고로 데이터베이스에 movie table 은 잘 만들어져 있는 상태입니다. 아래에는 문제가 생긴 제 코드를 올린 깃헙입니다. https://github.com/jessi68/MovieRecommendedSystem/tree/souyoon
- 미해결스프링 데이터 JPA
NoRepositoryBean 과 추상클래스
안녕하세요. @NoRepositoryBean 에 대해 궁금한점이 있어 질문 드립니다. 실제 객체로 만들고 싶지 않아서 이런 annotation 을 쓴다고 생각을 했는데, 그러면 추상 클래스로 만드는 것이랑 어떤 차이가 있을까요?
- 미해결스프링 데이터 JPA
개인 블로그에 강의 영상 요약 정리 가능 여부
안녕하세요. 개인 블로그에 강의 영상에 대한 요약과 저의 생각을 포스팅하면서 공부하고자 하는데 혹시나 하는 저작권 문제 때문에 질문 드립니다. 미리 리서치한 정보에 따라서 아래와 같은 규칙을 작성해봤고 해당 규칙을 준수하면서 학습한 내용에 대한 요약 정리 가능 여부를 알고 싶습니다. 강의 자료의 캡쳐본은 사용하지 않는다. 소스코드 첨부가 필요하다면 원본을 사용하지 않고 본인이 직접 작성한 것을 사용한다. 강의에 대한 출처를 표기한다. 아래는 참고한 페이지입니다. "강의 슬라이드의 일부를 블로그정리 포스팅하는데사용해도 괜찮을까요?", 인프런, https://www.inflearn.com/questions/18882 "이제까지 개발 인강을 보면서 정말 재밌게 보고 있는 강의입니다.", 인프런, https://www.inflearn.com/questions/15988 p.s 질문과는 관련없지만 유튜브, 슬랙으로 여러 정보들을 공유할 수 있게 좋은 환경을 만들어주셔서 감사합니다 ^^..
- 미해결스프링 데이터 JPA
자바에서 변수를 선언해서 sql 문의 변수로 옮길려면 어떻게 하나요?
안녕하세요. 다름이 아니라 제가 sql 문에서 변수를 선언하고 싶은데 그 변수의 값은 java 에서 입력받아서 sql 로 옮기고 싶은게 가능할까요?
- 미해결스프링 데이터 JPA
쿼리 캐싱관련 질문드립니다.
안녕하세요. 백기선님 강의 너무 잘 보고있습니다.JPQL로 만든 쿼리가 캐싱이 안되는것 같아 질문드립니다. 테스트로 spring data jpa 의 findById를 JPQL 로 만들어보았습니다. @Query("select p from Person p where p.id = :id") public Person findByIdCustom(Long id); 동일한 트랜잭션에서 동일한 id로 위 쿼리를 여러번 호출하면 호출한 만큼 쿼리가 날아가고 있습니다ㅠ JpaRepository 의 findById 를 여러번 호출하면 정상적으로 한번만 쿼리가 날아가고 이후에는 쿼리가 날아가지 않는데 제가 만든 위 쿼리를 사용하면 호출한 만큼 쿼리가 날아가 질문드립니다.. 위 쿼리로 얻어온 엔티티 객체를 equals로 비교하면 전부 동일한 객체로 나오고 있는데도 쿼리가 여러번 호출됩니다.
- 미해결스프링 데이터 JPA
jpa 프로그래밍 프로젝트 세팅 관련 오류 (Unknown entity)
jpa 프로그래밍 프로젝트 세팅 강좌를 따라하면서, 저는 이제 account 가 아니라 movie 라는 클래스를 만들고 이에 관한 매핑을 시도하려 했는데, movie table 은 만들어진 상태이고, jparunner 를 통해 movie 를 추가하려 했는데, Unknown entity: domain.Movie 이렇게 오류가 뜨더라구요. @Entity 를 Movie class 에 붙여 줬고 get, set 함수를 작성하는 귀찮음을 덜기 위해 @Data 도 붙여주었는데 뭐가 문제일까요? 또한 javax.persistence.Entity 를 import 해서 그 entity annitation 을 써준 것 맞습니다.
- 미해결스프링 데이터 JPA
JPA JoinColumn에서 지정한 FK에 자동으로 값 넣기
안녕하세요. 강의 도중 궁금한점이 있어 질문 드립니다. School Entity와 Student Entity를 Join 관계로 지정하였습니다. [School Entity] @Table(name = "school") public class SchoolVo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private Integer id; @Column(name = "school_name", nullable = false) private String schoolName; @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="schoolVoList") private List<Student> student = new ArrayList<>(); } [Student Entity] @Table(name = "student") public class StudentVo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", nullable = false) private Integer id; @Column(name = "school_id", nullable = false) private int schoolId; @Column(name = "student_name", nullable = false) private String studentName; @ManyToOne @JoinColumn(name = "school_id_fk") private SchoolVo schoolVoList; } repository.save를 이용하여 student 테이블에 값을 추가하려고 합니다. 이때 FK인 "school_id_fk"에만 값이 들어가지 않는데요. FK에 접근하려면 어떻게 하면 될까요? FK키에 자동으로 schoolId 값이 들어가도록 하고 싶습니다. Student 테이블에 값을 저장한 소스는 아래와 같습니다. @PostMapping("/local") public StudentVo setStudentInfo(@RequestBody StudentVo newStudent) { return studentRepository.save(newStudent); } 그리고 다른 이야기이지만.. Student Table에 school_id 컬럼이 있음에도 불구하고 FK를 별도로 지정해 주는 방법은 효율적인 건가요? 2컬럼이 계속 같은 값이 들어갈텐데 인터넷 검색해보니 가시성도 높아지고 별도로 해주는게 좋다고도 하던데 굳이 같은 값이 들어가는 컬럼을 중복해서 만들 필요가 있는지, FK없이 JPA에서 테이블간의 조인도 가능한지 궁금합니다! 질문이 쫌 많아졌지만... 조언 부탁 드립니다^^ 감사합니다.
- 미해결스프링 데이터 JPA
JPA, Hibernate, Spring Data JPA 의 차이점에 헤깔려서 질문올립니다!!
제가 이해한게 맞는지 여쭤보고 싶어서 질문을 남깁니다!! JPA 는 EntityManager 로 ORM 구현 Hibernate는 SessionFactory로 ORM 구현 Spring Data Jpa는 Repository에 JpaRepository를 상속받고 엔티티 객체를 구현하여 ORM 구현 JPA를 사용하지만 구현체인 hibernate를 사용하지 않아도 되고 즉 EntityManager로도 충분히 가능함 이 차이점이 맞나요?? Spring Data Jpa를 사용하지 않고 그냥 JPA만 사용할 경우에도 라이브러리를 spring-data-jpa 를 사용하는건가요??
- 미해결스프링 데이터 JPA
JPA에서 테이블명을 변수값으로 받아와서 select하는 경우
안녕하세요. 강의를 보면서 이런저런 기능을 구현해보고 있는데요. 혹시 API에서 "/api/{TABLE_NAME}"으로 get 을 보내 받아온 TABLE_NAME과 일치하는 테이블을 찾아 해당 테이블의 값을 모두 findAll 하게 할 수 있나요? 복수의 테이블에 대하여 각각 findAll을 하고자 할때 테이블별로 API를 만드는 방법밖에 없는지 궁금합니다. 테이블마다 구조는 각각 다릅니다. 따라서 테이블마다 entity와 repository는 만들어줄 수밖에 없을 것같은데 {TABLE_NAME}을 해당하는 entity와 repository를 찾도록 분기문을 하는게 최선일까요? 네이티브 쿼리도 생각해 봤는데 가능하면 쿼리 사용안하고 해보고 싶은데 검색해봐도 잘 모르겠네요. 조언 부탁드립니다. 감사합니다.
- 미해결스프링 데이터 JPA
JPA를 이용하여 DB 데이터 이용하기
안녕하세요. 좋은 강의 감사 드립니다. 예를들어 DB에 Table A, B, C가 있고, Table A, B, C의 구조는 모두 다릅니다. 이때 아래와 같은 쿼리를 JPA를 이용하여 구현하고 싶습니다. SELECT * FROM A; SELECT * FROM B; SELECT * FROM C; (물론 select 외에도 많은 쿼리를 날릴 예정입니다^^) 이런경우 Table A, B, C에 대하여 각각 Controller A, Repository A, Entity A Controller B, Repository B, Entity B Controller C, Repository C, Entity C 를 따로 만들어 줘야 하는 건가요?! 3개의 테이블에서 모두 select *를 하려고 하기 때문에 REST API에서 "/api/{TABLE_NAME}"으로 변수를 받아 {TABLE_NAME}에 맞춰 해당하는 테이블의 값을 갖고오도록 할 수 있는건가요?! 그런식으로 구현할 경우 어떤 방식으로 해야 하나요?! 테이블이 너무 많은데 해당 테이블마다 Contoroller, Repository, Entity Class를 각각 생성하는것이 정말 효율적인 방법인지 문의드립니다. 감사합니다.
- 미해결스프링 데이터 JPA
컨비니언스(convinience) method 관련 질문입니다.
명강의 늘 감사합니다. 바로 본론으로 들어가겠습니다. 다음과 같이 관계를 관리하는 method를 컨비니언스 method라고 하셨습니다. public void addStudy(Study study) { this.getStudies().add(study); study.setOwner(this);}public void removeStudy(Study study) { this.getStudies().remove(study); study.setOwner(null);} 1. 관계를 설정하기 위해 만든 컨비니언스 method는 관계의 주인이 아닌 @OneToMany(mappedBy="") 선언된 Collections 필드를 가진 class에서 구현하는 관계설정 method라고 생각하면 되겠습니까? 2. 이렇게 선언되면 Account와 Study는 N:N 다:다 관계라고 볼 수 있을까요? 3. 그렇다면 모든 데이터를 가지고 올 경우, findAll 하는 경우 현재 상황에선 N+1 위험이 있는 상황인가요? 4. private Set<Study> studies = new HashSet<>(); private Set<Study> studies; 의 차이가 무엇인가요?필드값을 미리 생성자로 생성하여 타입을 선언했다고 봐야하나요? 두서 없는 질문이지만 확실한 정보를 통한 정리가 필요하여 요청드립니다. 감사합니다.
- 미해결스프링 데이터 JPA
update 시 alter table account add column에서 그 뒤로 진행되지 않습니다.
JPA 프로그래밍 1. 프로젝트 세팅 강의를 따라하던 중 제 코드는 진행되지 않아서 문의 드립니다. database는 mySQL을 사용하였고, application.properties에서 ddl-auto를 update로 변경 후 실행하니 console에서 Hibernate: alter table account add column email varchar(255) 에서 아무 일도 일어나지 않습니다. 서버가 꺼지지도 않고 에러없이 JpaRunner 내의 run 함수에 접근을 하지 못하는 상태로 보입니다. 또한, 테이블 구조에는 변화가 없습니다. 이 문제를 어떻게 해야 해결할 수 있을까요? 제 application.properties입니다. 제 pom.xml 코드입니다. 마지막으로 코드 실행 시 나타나는 콘솔창입니다.
- 해결됨스프링 데이터 JPA
스프링부트 2.2 이상에서 Resource, PagedResource 관련 변경 사항
출처: https://stackoverflow.com/questions/25352764/hateoas-methods-not-found 83 In case you are using HATEOAS v1.0 and above (Spring boot >= 2.2.0), do note that the classnames have changed. Notably the below classes have been renamed: ResourceSupport changed to RepresentationModel Resource changed to EntityModel Resources changed to CollectionModel PagedResources changed to PagedModel ResourceAssembler changed to RepresentationModelAssembler More information available in the official documentation here. When using Spring boot starter, the below dependency would suffice to include HATEOAS: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> Hoping this information will help someone like me who searched for hours to find why Resource class was not getting resolved. 스프링부트 버전 2.2 이상 이신분들은 참고하시면 될거 같아요~
- 미해결스프링 데이터 JPA
쿼리만들기 기본예제에서 질문입니다!
쿼리만들기 기본 예제 중 아래 예제에 대해 질문드립니다! List<Person> findDistinctPeopelByLastnameOrFirstname(String lastname, String firstname) List<Person> findPeopelDistinctByLastnameOrFirstname(String lastname, String firstname) - 질문사항 1. 반환 타입이 List<Person>으로 나와있는데 함수명에 People 이 Person과 다른 객체를 의미하는것이 맞는지 궁금합니다. 2. 위 두 함수의 Person을 People로 바꿔 쿼리를 확인해보니 동일하게 나왔습니다. 두 함수의 차이가 무엇인지 궁금합니다.
- 미해결스프링 데이터 JPA
repository 구현체 관련 문의
repo를 커스터마이징 할 때, 나만의 레포(MyRepository)를 구현까지 해주는데요. 그러면 MyRepository를 상속받은 PostRepository (실사용할 레포) 에 있는 쿼리메서드들은 어느 시점에, 누가 구현해주며, 구현체는 어디에 있나요? + 그냥 우리가 MyRepository 를 구현했던 방법과 유사한 식으로.. 스프링? 이 빌드시? 에 구현해주는건가요?
- 미해결스프링 데이터 JPA
JPA 엔티티 설정할 때 오라클 View는 어떤식으로 설정해야하나요???
안녕하세요. 현재 JPA를 공부하고 있는 1인입니다. 다름아니라 오라클의 뷰를 레파지토리로 만들어서 쓰고 싶은데 에플리케이션프로파티 파일의 spring.jpa.hibernate.ddl-auto=validate 설정에서 오류를 내뿜더라구요. 해서 오라클에 등록되 있는 뷰의 쓰는법을 알고 싶습니다. spring.jpa.hibernate.ddl-auto=validate설정 none으로 변경하고 돌리면 SQL쿼리는 문제가 없는데 실제로 가져온 값을 보면 LIST내에서 첫번째 인덱스 값만 계속 출력하더라구요. (사이즈가 10개라면 10개다 첫번째 값과 동일한 내역 출력) 혹시 알수 있으면 첫번째 인덱스 값만 계속 출력하는 이유도 알고 싶습니다. 결론 1. 오라클 뷰 엔티티 작성하는 방법. 2. 쿼리로 가져온 List값이 첫번째 인덱스 값으로 계속 출력되는 이유 이상 잘 부탁드립니다.
- 미해결스프링 데이터 JPA
Convenient Method 관련 질문입니다.
안녕하세요 강사님. 강의에 대한 직접적인 질문은 아니지만, Convenient method 관련해서 여쭤볼 게 있습니다. public void addStudy(Study study){ this.getStudies().add(study); study.setOwner(this); } 이 부분에서 study.setOwner(this) 쪽 질문인데, 현재 저는 Entity에서 Setter를 최대한 지양하고 있습니다. 그래서 Study 클래스에서 Account 변수에만 setter를 만들어주는게 나을지, 아니면 역할은 똑같지만 public void addOwner(Account account){ this.account = account; } 이런식으로 Study 엔티티에 메소드를 하나 만들어서, public void addStudy(Study study){ this.getStudies().add(study); study.addOwner(this); } 이런식으로 사용을 할지 고민 중인 상태입니다.. 강사님의 의견이 궁금해서 질문 남겨봅니다. 항상 감사합니다!