본문 바로가기

Java192

연관관계 매핑(단방향) 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.. 2023. 11. 15.
JPA 매커니즘 EntityManagerFactory는 하나만 생성해서 애플리케이션 전체에서 공유한다.EntityManager는 쓰레드간 공유하지 x(사용하고 버린다)JPA의 모든 데이터 변경은 트랜잭션 안에서 실행한다.준영속상태(detach) : 영속성 컨텍스트에서 빠진 상태em.clear() : 1차캐시 다 지움. 테스트할 때 많이 쓰인다. 영속성 컨텍스트(엔티티를 영구 저장하는 환경)의 이점1차 캐시 동일성(identity) 보장트랜잭션을 지원하는 쓰기 지연변경 감지(Dirty Checking)지연 로딩(Lazy Loading)같은 트랜잭션 내에서는 동일성 보장한다.@Testpublic void testMember() throws Exception { // given Member member = new .. 2023. 11. 12.
JPA 도메인분석설계 @Entity 가급적이면 개발자가 클래스로 바로 볼 수 있도록, Column 길이나 index를 다 적어주면 좋겠다. 스프링부트에서는 엔티티의 필드 이름이 orderDate이면 -> order_date 로 관례대로 바꿔줌 @Entity 저장할 필드에 final 사용x 데이터베이스 스키마 자동생성하기 -(운영에서는 절대 create,create-drop,update 사용하면 안됨!) -테스트서버에서 validate는 괜찮다. (create하면 처음에 drop하고 create하니까 난리남, update도 alter나가서 rock걸림!!! 그럼 장애남....) - 개발 초기 단계에서는 create또는 update 괜찮음...그래도 가급적이면 쿼리 직접 쓰는걸 권장. 직접 쿼리 짜는거 귀찮으니까 create 문 꼼꼼히 따져보.. 2023. 11. 9.
쿼리 파라미터찍기 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.. 2023. 11. 8.
[JSP 다시보기] 태그 스크립트 태그 JSP페이지가 서블릿프로그램(java)에서 서블릿 클래스(.class)로 변환할 때 JSP 컨테이너가 자바코드가 삽입되어있는 스크립트태그를 처리한다. 스크립트 태그 형식 설명 선언문(declaration) 자바 변수나 메소드를 정의하는데 사용 스크립틀릿(scriptlet) 자바 로직 코드 작성 표현문(expression) 변수,계산식,메소드 호출 결과를 문자열 형태로 출력할 때 사용 주석처리 디렉티브 태그 JSP 페이지와 관련된 정보를 JSP 컨테이너에 지시하는 메시지 디렉티브 태그 형식 설명 page JSP 페이지에 대한 정보를 설정합니다 include JSP 페이지의 특정 영역에 다른 문서를 포함합니다. taglib EL에서 사용할 자바 클래스나 JSTL을 선언합니다. 2023. 11. 1.
TreeMap Map을 이용할 때 key를 오름차순 정렬해서 값을 가져올 수 없을까? 이것을 TreeMap이 해결해준다. 검색 기능을 강화시킨 컬렉션은 TreeSet, TreeMap이 있다. 이진트리구조를 사용하기 때문에 검색 속도가 향상된다. 주요 메소드 단일 노드 객체를 찾는 메소드 : firstEntry(), lastEntry(), lowerEntry(), hightEntry().. 정렬 메소드 : descendingKeySet(), descendingMap() 범위 검색 메소드 : headMap(), tailMap, subMap() TreeMap은 키를 정렬된 순서로 유지한다. 기본적으로 오름차순이다. 단, TreeMap을 사용할때는 성능 상의 고려사항이 있을 수 있다. 대량의 데이터를 다루는 경우나 빈번한 삽.. 2023. 10. 25.