Java 관련/JPA: 16개의 글
Table 관계도 Entity @Entity(name = "tbl_product") public class Product { @Id @GeneratedValue private int productId; private String name; private int price; @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinTable(name = "tbl_product_category", joinColumns = @JoinColumn(name = "product_id"), inverseJoinColumns = @JoinColumn(name = "category_id")) private List categories; public Prod..
Table 관계도 Entity @Entity(name = "tbl_user") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer userId; private String username; private String nickName; private String address; @OneToMany(mappedBy = "user", cascade = CascadeType.ALL) private List orders; // getter and setter public boolean addOrder(Order order) { if(orders == null) orders = new ArrayList(); r..
Table 관계도 Entity @Entity public class Person { @Id @GeneratedValue private int id; private String name; @OneToOne @JoinColumn(name = "cellular_id") private Cellular cellular; public Person() {} public Person(String name, Cellular cellular) { this.name = name; this.cellular = cellular; } // getter and setter @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + ..
프로젝트 구조 DB는 편의상 H2 DB 사용 구현체는 Hibernate 사용 Spring 자체 설정보다는 JPA 설정 예제를 위해 Spring Boot 사용 Maven 기반 프로젝트 JPA란 무엇인가? 에 나오는 user, order 테이블을 예제로 사용 JPAConfig.java LocalContainerEntityManagerFactoryBean : EntityManagerFactoryBean을 Spring에서 사용하기 위한 클래스 JpaVendorAdapter : JPA는 여러 구현체가 존재하기 때문에 구현체별 설정을 지원하기 위한 클래스이다. 나는 hibernate를 사용하기 때문에 HibernateJpaVendorAdapter를 사용한다. @Configuration @EnableTransacti..
프로젝트 구조 DB는 편의상 h2 DB 사용 구현체는 Hibernate 사용 JPA란 무엇인가? 에 나오는 user, order 테이블을 예제로 사용 META-INF/persistence.xml hibernate.connection.driver_class : DB Driver hibernate.connection.url : DB url 및 DB파일이 저장될 경로(h2 DB에 한함) hibernate.connection.user : username hibernate.show_sql : JPA 내부적으로 사용되는 쿼리를 log로 나타낼지 설정 hibernate.hbm2ddl.auto : Entity에 의한 테이블 설정 (create-drop은 프로젝트 실행시 기존 테이블을 삭제하고 다시 생성한다. 즉 테스트..
JPA(Java Persistent API) JPA는 여러 ORM 전문가가 참여한 EJB 3.0 스펙 작업에서 기존 EJB ORM이던 Entity Bean을 JPA라고 바꾸고 JavaSE, JavaEE를 위한 영속성(persistence) 관리와 ORM을 위한 표준 기술이다. JPA는 ORM 표준 기술로 Hibernate, OpenJPA, EclipseLink, TopLink Essentials과 같은 구현체가 있고 이에 표준 인터페이스가 바로 JPA이다. ORM(Object Relational Mapping)이란 RDB 테이블을 객체지향적으로 사용하기 위한 기술이다. RDB 테이블은 객체지향적 특징(상속, 다형성, 레퍼런스, 오브젝트 등)이 없고 자바와 같은 언어로 접근하기 쉽지 않다. 때문에 ORM을..