Java (189) 썸네일형 리스트형 @MappedSuperclass id,name 등 공통 매핑 정보가 필요할 때 사용, 엔티티가 아님에 주의!단순히 엔티티가 공통으로 사용하는 매핑정보를 모으는 역할@MappedSuperclasspublic abstract class BaseEntity { private String createBy; private LocalDateTime createdDate; private String lastModifiedBy; private LocalDateTime lastModifiedDate; 속성만 상속받을 때 쓰는 MappedSuperclass부모 클래스를 상속 받은 자식 클래스에 매핑 정보만 제공한다. 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장함.필드 예시는 운영 시 기본으로 깔려야하는 녀석들. 나중에 Sp.. 상속관계 테이블 설계 전략 조인 전략을 기본으로 확장할 일도 없을거같고 데이터도 넘 단순하다 -> 싱글 테이블 전략 근데, 비즈니스적으로 중요하고 복잡하다 -> 조인 테이블 전략@Inheritance(strategy=InheritanceType.JOINED : 조인전략SINGLE_TABLE : 단일 테이블 전략@DiscriminatorColumn(name="DTYPE") : 싱글테이블 사용 시 필수. DTYPE을 만들어주는 어노테이션. 어떤 구체적인 서브타입인지(ex.Book,Movie...) 알려준다.@DiscriminatorValue("XXX") : 따로 지정하지 않으면 기본으로 엔티티 이름을 사용한단일 테이블 전략 단점 : 자식 엔티티가 매핑한 컬럼은 모두 null 허용 연관관계 매핑(양방향) 가급적이면 단방향으로 설계하시오!단방향 매핑만으로도 이미 객체랑 테이블 연관관계 매핑은 완료.단방향 매핑을 잘하고 양방향은 필요할 때 추가해라.(양방향 매핑은 반대방향으로 조회 기능(객체 그래프 탐색)이 추가된 것 뿐임) 실무에서는 JPQL에서 역방향으로 탐색할 일이 많음. 필요할 때 추가하면 됨. (테이블에 영향 없음) @Entity @Getter @Setterpublic class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany(mappedBy = "team") // Member의 Team타입의 변수명 private List member.. 연관관계 매핑(단방향) Member(n) : team(1) 매핑 @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username; /*@Column(name = "TEAM_ID") private Long teamId;*/ @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; } @JoinColumn의 name 값으로 select 쿼리 나갈때 join해서 나감. left outer join Team team1_ on member0_.TEAM_ID=team.. JPA 매커니즘 EntityManagerFactory는 하나만 생성해서 애플리케이션 전체에서 공유한다.EntityManager는 쓰레드간 공유하지 x(사용하고 버린다)JPA의 모든 데이터 변경은 트랜잭션 안에서 실행한다.준영속상태(detach) : 영속성 컨텍스트에서 빠진 상태em.clear() : 1차캐시 다 지움. 테스트할 때 많이 쓰인다. 영속성 컨텍스트(엔티티를 영구 저장하는 환경)의 이점1차 캐시 동일성(identity) 보장트랜잭션을 지원하는 쓰기 지연변경 감지(Dirty Checking)지연 로딩(Lazy Loading)같은 트랜잭션 내에서는 동일성 보장한다.@Testpublic void testMember() throws Exception { // given Member member = new .. JPA 도메인분석설계 @Entity 가급적이면 개발자가 클래스로 바로 볼 수 있도록, Column 길이나 index를 다 적어주면 좋겠다. 스프링부트에서는 엔티티의 필드 이름이 orderDate이면 -> order_date 로 관례대로 바꿔줌 @Entity 저장할 필드에 final 사용x 데이터베이스 스키마 자동생성하기 -(운영에서는 절대 create,create-drop,update 사용하면 안됨!) -테스트서버에서 validate는 괜찮다. (create하면 처음에 drop하고 create하니까 난리남, update도 alter나가서 rock걸림!!! 그럼 장애남....) - 개발 초기 단계에서는 create또는 update 괜찮음...그래도 가급적이면 쿼리 직접 쓰는걸 권장. 직접 쿼리 짜는거 귀찮으니까 create 문 꼼꼼히 따져보.. 쿼리 파라미터찍기 https://github.com/gavlyukovskiy/spring-boot-data-source-decorator GitHub - gavlyukovskiy/spring-boot-data-source-decorator: Spring Boot integration with p6spy, datasource-proxy, flexy-pool and s Spring Boot integration with p6spy, datasource-proxy, flexy-pool and spring-cloud-sleuth - GitHub - gavlyukovskiy/spring-boot-data-source-decorator: Spring Boot integration with p6spy, datasource-p... g.. [JSP 다시보기] 태그 스크립트 태그 JSP페이지가 서블릿프로그램(java)에서 서블릿 클래스(.class)로 변환할 때 JSP 컨테이너가 자바코드가 삽입되어있는 스크립트태그를 처리한다. 스크립트 태그 형식 설명 선언문(declaration) 자바 변수나 메소드를 정의하는데 사용 스크립틀릿(scriptlet) 자바 로직 코드 작성 표현문(expression) 변수,계산식,메소드 호출 결과를 문자열 형태로 출력할 때 사용 주석처리 디렉티브 태그 JSP 페이지와 관련된 정보를 JSP 컨테이너에 지시하는 메시지 디렉티브 태그 형식 설명 page JSP 페이지에 대한 정보를 설정합니다 include JSP 페이지의 특정 영역에 다른 문서를 포함합니다. taglib EL에서 사용할 자바 클래스나 JSTL을 선언합니다. 이전 1 ··· 4 5 6 7 8 9 10 ··· 24 다음