
27~36번처럼 직접 넣을 필요가 없음. 22~25번처럼 어노테이션만 쓰면 되는데 spring data jpa이다. 어노테이션을 쓰는 게 auditing이다. @EntityListeners(AuditingEntityListener.class)를 사용해줘야 함. DB에서 insert나 update된게 listener가 감지해서 now를 주입을 해주는 것임. Application에서 @EnableJpaAuditing 을 붙여주어서 spring한테 auditing 허락을 받아야 사용가능하다.

모듈화 방식 : jpa가 봤을 때는 1,2번 차이가 없어야 한다. db에서는 하나의 테이블의 동일한 컬럼일 뿐. 1. 임베디드 DB는 변하는 것이 없고 java에서 편하게 쓰는 것일 뿐임. @Embeddable : 선언할 때, 나 추가될 수 있어 @Embedded : 모듈을 사용할 때, 나 추가됐어 상속이 아니다. 필드(객체)를 모듈화한 것임. 분리한 것임. 다른 곳에서도 재사용할 수 있음. 임베디드 : 기존에 있는 것에서 새로운 것을 추가하는 것임. 필드 하나하나를 접근해서 쓰지 않고, 묶어서 통채로 가져올 때 사용한다. 2. MappedSuperclass Inheritance : 상속관계, RDB에서도 상속관계 @Entity 사용 period : 부모x, 재사용하기 위함. 임베디드와 비슷한 성격. 상..

자바에만 상속의 개념이 있고, RDBMS에는 상속의 개념이 없다. 이를 해결하기 위해 3가지 방법이 있다. 1.joined 2.singletable 3.tableperclass (거의 사용안함) @Inheritance(strategy = InheritanceType.JOINED) joined가 디폴트, joined에서 부모엔티티에서 @DiscriminatorColumn(name = "") // Dtype이 default 자식엔티티에서 @DiscriminatorValue("") // 컬럼에서 나타낼 값을 쓰면 된다. 부모엔티티에서 @Inheritance(strategy = InheritanceType.JOINED) 추가 abstract 붙이기 상속관계에서는 @Entity를 붙여주어야 한다. Employee..

* 페이징 SuperCarDAO.java alt+enter > inject language > jpql 엔터 > 쌍따음표안에서 색깔 표시 가능 정렬을 해야 최신순으로 나옴. SuperCarTest.java (1, 10) > 1번부터 10개 뽑기(1페이지) (10, 10) > 10번부터 10개 뽑기(2페이지) * 수정(벌크연산) 하나만 수정할 때는 setter를 쓰면 되지만, 한번에 여러 개 수정할 때, ex) 자동차 금액 전체 10% 인상, 벌크 연산을 사용해야 한다. 벌크연산 : 영속성 컨텍스트를 무시하고 SQL 반영된다. 영속성 컨텍스트와의 불일치(디비만 반영된 상태) 무조건 영속성 컨텍스트를 비워주고 벌크연산을 해야 한다!! SuperCarDAO.java executeUpdate : insert, ..
스프링 프로젝트 설계중인데, 엔티티를 만들고 있는데 not null 제약조건을 주기 위해서 @Column(nullable = false)를 썼는데 다른 팀에서는 @NotNull을 준 걸 봤다. 둘다 null을 허용하지 않는 건데 뭐가 다를까? 검색검색ㄱㄱㄱ 결론적으로 nullable = false 보다 @NotNull을 추천하고 있다. @NotNull 어노테이션을 쓰면, 데이터베이스에 SQL 쿼리를 보내기 전에 예외가 발생한다. JPA의 Repository 인터페이스가 잘못된 Entity를 저장할 때, ConstraintViolationException을 발생시킨다. (그 때문에, @Valid나 @Validated 없이도 엔티티를 자연스럽게 검증할 수 있다) 물론 값이 검증에 맞지 않아도 객체를 생성하는..

인텔리제이에서 로컬로 연결했는데 잘되던 연결이.. 갑자기 안된다?!! SQL Error [12514] [08006]: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor 그래서 디비버에 들어가서 보니.. 아래처럼 뜨면서 localhost가 연결이 안되더라ㅠㅠ ORA-12514 검색 계속 해보니 1. listener가 정상적인 동작을 하지 않고 있는 경우 2. 접속하기 위한 작성된 코드의 오타 → 오라클의 SID, SERVICE_NAME은 대소문자를 반드시 구분하여 기술해야 한다. 3. 존재하지..