목록jpa (5)
최코딩의 개발노트
경로 표현식 상태 필드 - 단순히 값을 저장하기 위한 필드이다. - 즉 경로 탐색의 끝이며 탐색이 더 이상 안된다. String query = "select m.username, m.age from Member m"; 연관필드 단일 값 연관 필드 - @ManyToOne, @OneToOne, 대상이 엔티티인것들을 말한다. String query = " select o.member from Order o"; - 위와 같이 쿼리를 넣을때 SQL에서 묵시적 내부 조인이 발생한다. - 물론 탐색은 가능하다. - 비추X 컬렉션 값 연관 필드 - @OneToMany, @ManyToMany, 대상이 컬렉션인것들을 말한다. //String query = "select t.members from Team t"; Strin..
프록시 프록시 기초 - em.find(): DB를 통해서 실제 엔티티 객체를 조회한다. - em.getReference(): DB 조회를 미루는 가짜 즉 프록시 엔티티 객체를 조회 한다. 프록시 특징 - 실제 클래스를 상속 받아서 만들어진다. - 실제 클래스의 겉 모양이 같다. - 사용하는 입장에서는 이게 진짜인지 가짜객체인지 모른다. 위치투명성? - 프록시 객체는 실제 객체의 참조를 보관한다. - 즉 프록시 객체를 호출하면 실제 객체의 메소드를 호출하는 것이다. - 프록시 객체는 원본 엔티티를 상속받으므로 타입 체크시 instance of를 사용한다. 프록시 초기화 Member findMember = em.getReference(Member.class, member.getId()); //이 값이 사용될..
상속관계 매핑 조인 전략(JOINED) - 조인 전략은 위와 같이 객체랑 관계형DB랑 구조가 비슷할 때 사용하는 것이다. @Entity // 중복되는 속성들을 다 하위로 보냄 즉 item 테이블 d없음 근데 쿼리 em.find 할때 union해서 다 뒤짐 //@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) // 이거 안쓰면 상속받은 애들 다 한테이블로 추가됨 즉 상속으로 나뉘게 해주는거 innerjoin @Inheritance(strategy = InheritanceType.JOINED) // 다 통일한 단일 테이블 추가로 discrim 없어도 dtype 생김 //@Inheritance(strategy = InheritanceType.SINGLE_TA..
컬럼 매핑과 테이블 매핑 @Entity @Table(name="member") public class Member { @Id private Long id; @Column(name = "name") // nullable 널값 유무 // insertable/updateable 등록변경 가능 여부 // columnDefinition 은 컬럼을 직접 정의 ex) varchar(100) default 'empty' private String username; private Integer age; @Enumerated(EnumType.STRING) //String 필수!! private RoleType roleType; @Temporal(TemporalType.TIMESTAMP) private Date create..
보호되어 있는 글입니다.