반응형 SMALL 전체 글65 04 엔티티 매핑 JPA는 다양한 매핑 어노테이션을 지원하는데 크게 4가지로 분류할 수 있다. * 객체와 테이블 매핑:@Entity,@Table * 기본 키 매핑 : @Id * 필드와 컬럼 매핑 : @Column * 연관관계 매핑 : @ManyToOne, @JoinColumn 4.1 @Entity JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 어노테이션을 필수로 붙여야 한다. @Entity가 붙은 클래스는 JPA가 관리하는 것으로, 엔티티라 부른다. @Entity 적용 시 주의사항은 다음과 같다 * 기본 생성자는 필수다. * final 클래스, enum,interface, inner 클래스에는 사용할 수 없다. * 저장할 필드에 final을 사용하면 안 된다. 4.2 @Table 속성 기능 기본값 name 매핑.. 2023. 9. 20. 03 영속성 관리 엔티티 메니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리한다. 3.1 엔티티 메니저 팩토리와 엔티티 메니저 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다. //공장 만들기, 비용이 아주 많이 든다. EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); Persistence.createEntityManagerFactory("hello"); 를 호출하면 META-INF/persistence.xml에 있는 정보를 바탕으로 EntityManagerFactory를 생성한다. 이제부터 필요할 때마다 엔티티 메니저 팩토리에서 엔.. 2023. 9. 19. 02 JPA 시작 2.3.1 메이븐과 사용 라이브러리 관리 4.0.0 org.example ex1-hello-jpa 1.0.0 11 11 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.200 javax.xml.bind jaxb-api 2.3.1 2.4 객체 매핑 시작 @Entity @Table(name="MEMBER") public class Member { @Id @Column(name="ID") private String id; //아이디 @Column(name="NAME") private String username; //이름 private Integer age; //나이 public String getId() { return id;.. 2023. 9. 19. chapter 11 합성과 유연한 설계 상속 관계는 is-a 관계라고 부르고 합성 관계는 has-a 관계라고 부른다. 상속을 제대로 활용하기 위해서는 부모 클래스의 내부 구현에 대해 상세하게 알아야 하기 때문에 자식 클래스와 부모 클래스 사이의 결합도가 높아질 수밖에 없다. 결과적으로 상속은 코드를 재사용할 수 있는 쉽고 간단한 방법일지는 몰라도 우아한 방법은 아니다. 합성은 구현에 의존하지 않는다는 점에서 상속과 다르다. 합성은 내부에 포함되는 객체의 구현이 아닌 퍼블릭 인터페이스에 의존한다. 상속 관계는 클래스 사이의 정적인 관계인 데 비해 합성 관계는 객체 사이의 동적인 관계다. 이 차이점은 생각보다 중요한데, 코드 작성 시점에 결정한 상속 관계는 변경이 불가능하지만 합성 관계는 실행 시점에 동적으로 변경할 수 있기 때문이다. 01. 상.. 2023. 9. 18. 코딩 테스트 준비하기 01. 어떤 알고리즘으로 풀어야 할까? - 알고리즘 선택의 기준이 되는 시간 복잡도 01-1 시간 복잡도 표기법 알아보기 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수를 말합니다. 일반적으로 수행 시간은 1억 번의 연산을 1초의 시간으로 간주하여 예측합니다 2023. 9. 15. chapter 16 CompletableFuture: 안정적 비동기 프로그래밍 16.1 Future의 단순 활용 미래의 어느 시점에 결과를 얻는 모델을 활용할 수 있도록 Future 인터페이스를 제공하고 있다. 비동기 계산을 모델링하는 데 Future를 이용할 수 있으며, Future은 계산이 끝났을 때 결과에 접근할 수 있는 참조를 제공한다. ExecutorService executor = Executors.newCachedThreadPool(); //스레드 풀에 테스크를 제출하려면 ExecutorService를 만들어야한다. Future future = executor.submit(new Callable() { //Callable을 ExecutorService로 제출한다. @Override public Double call() throws Exception { // 시간이 오래.. 2023. 9. 13. 이전 1 2 3 4 5 6 7 ··· 11 다음 반응형 LIST