Spring(30)
-
Spring-JPA(@MappedSuperClass,@EntityListener)
Spring-JPA Annotation(@MappedSuperclass, @EntityListeners) @Getter @Setter @MappedSuperclass // 상속했을 때, 컬럼으로 인식하게 합니다. 즉 이 timestamped 추상클래스를 상속한 클래스가 자동으로 생성시간과 수정 시간을 컬럼으로 잡도록 도와주는 녀석이다. @EntityListeners(AuditingEntityListener.class) // 생성/수정 시간을 자동으로 반영하도록 설정. memo class가 변화하는 거를 항상 이렇게 듣는다. 생성시간과 수정시간이 변화가 있으면 자동으로 업데이트 해주겠다는 뜻. public abstract class Timestamped { @CreatedDate // 생성일자임을 나타..
2021.03.23 -
Spring JPA 영속성 컨텍스트
영속성 컨텍스트 엔티티 매니저 팩토리와 엔티티 매니저 영속성 컨텍스트란?? JPA를 이해하는데 가장 중요한 언어 "엔티티를 영구 저장하는 환경" 이라는 뜻 EntityManager.persist(entity); 엔티티 매니저? vs 영속성 컨텍스트? 영속성 컨텍스트는 논리적인 개념 눈에 보이지 않는다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 J2SE 환경 엔티티 매니저와 영속성 컨텍스트가 1:1 PersistenceContext는 눈에 보이지 않는 공간이라고 생각하면 된다. 엔티티 생명주기 비영속 객체를 생성한 상태(비영속) Member member = new Member(); member.setId(1L); member.setUserName("User1") 영속 //객체를 생성한 상태(비영속) ..
2021.02.28 -
Spring JPA 엔티티 맵핑
엔티티 매핑 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 주의 기본 생성자 필수 (파라미터가 없는 public or protected생성자) final 클래스, enum, interface, inner 클래스 사용 x 저장할 필드에 final 사용 x @Table 엔티티와 매핑할 테이블 지정 속성 기능 기본값 name 매핑할 테이블 이름 엔티티 이름을 사용 catalog 데이터베이스 catalog 매핑 schema 데이터베이스 schema 매핑 uniqueConstraints(DDL) DDL 생성 시에 유니크 제약 조건 생성 데이터베이스 스키마 자동 생성 hibernate.hbm2ddl.au..
2021.02.27 -
JPA 개발 들어가기
JPA 들어가기 라이브러리 추가 - pom.xml Spring Boot에서는 자동으로 다 해준다! 하지만 지금 프로젝트에서는 한땀한땀 다 해보는게 중점이어서 xml파일도 작성해보는거기 때문에 이점을 주의하자!! org.hibernate hibernate-entitymanager 5.4.1.Final javax.xml.bind jaxb-api 2.3.1 com.h2database h2 1.4.200 이렇게 JPA 관련 라이브러리와 H2데이터 베이스 라이브러리를 넣어준다. 여기서 javax.xml.bind 라는 라이브러리는 jdk11버전으로 프로젝트를 실행시 일어나는 Java EE 모듈과 CORBA 모듈이 Deprecated되면서 기본 참조가 되지 않아 발생한 문제였다.(출처: https://luvstudy..
2021.02.19 -
JPA는 왜 사용하는가?
JPA는 왜 사용하는가? 만약 JPA를 사용을 하지 않는다면 만약 (객체지향 언어를 사용한다고 하면) SQL를 객체답게 모델링 할 수록 매핑잡업만 늘어나게 된다. 예를 들면... CRUD 작업을 모든걸 계속해서 해줘야하는 듯한...? SQL 중심적인 개발에서 객체 중심으로 개발 생산성, 유지보수, 패러다임의 불일치 해결, 성능 데이터 접근 추상화와 벤더 독립성 표준 생산성 - JPA와 CRUD 저장 : jpa.persist(member); 조회 : Member member = jpa.find(memberId); 수정 : member.setName("변경할 이름"); 삭제 : jpa.remove(member); 유지보수 기존 : 필드 변경시 모든 SQL 수정 JPA와 패러다임의 불일치해결 저장 개발자가 할..
2021.02.19 -
Spring으로 간단한 게시판 만들기
Spring으로 간단한 게시판 만들기(기획부터 구현까지) 지금 Spring을 배우면서 만들기 때문에 퀄리티가 좋지 않을거 감안하고 봐주길 바란다...! 첫번째로 쓸거는 기획이다 -어떻게 페이지가 동작하는지 -버튼을 눌렀을때 어떻게 동작하는지 -URL주소는 어떻게 설정 했는지 설명하도록 하겠다. 1. 첫번째로 웹 사이트를 들어가면 커버페이지가 있는걸 감안해서 나도 커버페이지를 만들었다. 우리는 로그인도 구현 할 거이기 때문에 로그인이 안된상태를 커버 페이지로 만들었다. 그리고 URL주소는 난중에 바꿔야 하겠지만 일단 연습중이니깐 처음 화면을 index.jsp로 지정해주었고 로그인 화면은 직관적으로 하기위해 /login으로 해주었다. 사실 모든 URL이 이렇게 직관적으로 보일거 같다. 2. 두번째는 로그인을..
2018.11.12