jpa

[4] 글쓰기 구현하기 및 게시판 글 보여주기 들어가며 이번 포스팅에서는 로그인한 사용자가 있을 때 글쓰기를 작성하여 글을 작성하기능을 구현하고, 작성된 글을 모두 보여주는 것을 구현할 예정입니다. (이전 포스팅에서 MemberServiceImpl을 통해 만들어 봤기 때문에 이번 포스팅부터는 따로 생성하지는 않겠다. 이게시판 만들기에서는 Jqery, JavaScript 를 활용하여 부가적인 기능을 구현할 예정입니다.) 준비 이전 포스팅 참고 [SpringBoot] 무작정 (REST API)CRUD게시판을 만들어 보자 게시판 엔티티 설계(연관관게 매핑)및 게시판 [3] 엔티티 설계(연관관계 매핑) 및 게시판 뷰 만들기 들어가며 이전 포스팅 까지는 로그인및 회원가입을 구현해봤다 이번 포스팅에서는 Board ..
[3] 엔티티 설계(연관관계 매핑) 및 게시판 뷰 만들기 들어가며 이전 포스팅 까지는 로그인및 회원가입을 구현해봤다 이번 포스팅에서는 Board 엔티티를 만들고 Board 엔티티와 Member 엔티티간 연관관계를 매핑하고, 게시판 페이지의 틀을 만들어볼 예정이다. (이전 포스팅에서 MemberDto를 생성해봤기 때문에 이번 포스팅부터는 만든 Dto클래스는 생략한다. GetMapping 방식은 Srping MVC로 설계 예정) 프로젝트 환경 준비단계 참고 [SpringBoot ] 무작정 (REST API)CRUD게시판을 만들어 보자 준비 [1] [1] 프로젝트 준비 들어가며 프레임워크나, 언어, DB등을 이론적로 공부를 하고난후에 한번 토이 프로젝트를 통해서 실습을 해보고싶었다. 그래서 이번에 간단한 CR..
· JPA
OSIV란 OSIV OSIV(open session in View)는 영속성 컨텍스트를 뷰까지 열어준다는 의미이다. OSIV는 하이버네이트에서 사용하는 용어이고 JPA에서는 OEIV라고 하지만, 관례상 OSIV라고 부른다. OSIV 사용이유 OSIV(Open Session In View)를 사용하면 트랜잭션의 범위가 뷰까지 확장되어 영속 상태가 유지됩니다. 기본적으로 JPA에서는 트랜잭션 내에서 엔티티를 관리하고, 트랜잭션이 종료되면 영속성 컨텍스트가 닫혀 엔티티는 준영속 상태가 됩니다. 그러나 OSIV를 사용하면 트랜잭션을 뷰까지 확장하여 영속성 컨텍스트를 닫지 않고 유지합니다. 이는 컨트롤러나 뷰에서도 영속 상태의 엔티티를 유지하고 조회, 수정할 수 있게 됩니다. 따라서 뷰나 컨트롤러에서도 지연 로딩..
· JPA
JPA 값 타입 이란? 들어가며 값 타입은 기본적으로 3가지로 나눌수있다. 기본값 타입 자바 기본타입( int ,double) 래퍼 클래스(Integer) String 임데디드타입 컬렉션 값 타입 기본값 타입은 기본적으로 자바에서 제공하는 타입이다. 임베디드 타입은 JPA에서 직접 정의한 값 타입이다. 컬렉션 타입은 하나이상 값 타입을 저장할때 사용된다. ※ Lombok을 사용하여 작성함 기본값 타입 기본값 타입은 Entity 클래스를 만들때 기본으로 만들때 사용하는 타입이다. @Entity @Data public class Member { @Id private Long id;// 기본값 타입 private String username;// 기본값 타입 } 임베디드 값 타입 임베디드 값타입은 사용자가 직..
· JPA
프록시와 연관관계 관리 프록시 이런 엔티티가 있다고 해보자 public void printMemberName(String memberId){ Member member = em.find(Member.class, memberId); System.out.println("회원 이름: "+member.getUsername()); } Member에서 username을 가져올때 Team의 객체까지 가지고와서 회원이름이 출력이된다. 이런 방식은 매우 효율적이지 않은 방식이다. 하지만 JPA는 엔티티가 실제 사용될 때까지 데이터베이스 조회를 지연시키는 지연 로딩을 제공한다. 그럼 지연 로딩을 사용하려면 실제 엔티티 대신에 가짜 객체가 필요한데 가짜 객체를 프록시 객체라고한다. 프록시 기초 Member member = e..
상품등록을 위한 엔티티 설계 및 등록하기 들어가며 이번포스팅에서는 상품을 등록하는 기능을 개발해 보겠습니다. (도서 판매 페이지를 기준으로 개발) 엔티티 설계 사용자가 상품을 등록할때에는 여러 개의 상품을 등록할 수 있으며, 상품은 사용자의 한 명으로만 매핑되도록 설계했으며 아이템엔티티는 상속을 통해서 Book을 설계하도록 했습니다. 엔티티 작성 Member @OneToMany(mappedBy = "member") private List items = new ArrayList(); 일대다 관계 매핑을 위해서 Member 에다가 위에 코드를 추가한다. Item @Entity @Getter@Setter public abstract class Item { @Id@GeneratedValue private Lon..
세션을 사용하여 로그인(아이디 기억하기) 및 로그아웃하기 들어가며 이번 포스팅에서는 세션을 사용하여 로그인상태를 유지하고 사용자권한별로 접속하는 페이지가 다르게 하며 로그아웃하는 기능을 개발해 보겠습니다. Repository 이번 로그인에서도 JpaRepositroy를 사용하지 않고 직접 개발하여 사용하도록 하겠습니다 Reposiotry를 인터페이스로 만들어 오버라이딩하여 사용하도록 하겠습니다. LoginRepository public interface LoginRepository { List findById(String id); List findBPwd(String pwd); } findById(String id) : 객체에서 아이디값을 찾는 메서드 findByPwd(String pwd) : 객체에서 ..
로그인 페이지 레이아웃 구성 들어가며 이전 포스팅까지는 회원가입을 하는기능을 개발해봤습니다. 이제부터는 회원가입한 데이터값을 이용해서 로그인 기능을 개발해볼 예정입니다. 이번 포스팅에서는 로그인 페이지의 레이아웃 부터 구성해보겠습니다. 예상 로그인 페이지 간단한 기능이 있는 로그인 페이지 HTML 기존에 만들었던 header.html 에서 href 부분에 "/login"을 추가한다. | 로그인 templates/ 하위에 login폴더 생성후 loginPage.html 생성 bootstrap을 사용할 예정이라 css파일에다가 bootstrap다운받은후에 bootstrap.min.css 파일을 넣어줘야합니다. loginPage.html 책방 Id Password Remember Id Sign in 아이디 찾..
코드기록사
'jpa' 태그의 글 목록