728x90
반응형
** Transaction 안에서 하는 것이 중요
EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
//do something
tx.commit();
em.close();
emf.close();
@Entity
//@Table(name = "mbr") // Member 객체를 mbr 테이블에 매핑
public class Member {
@Id // primary key // 값 직접 할당
//@GeneratedValue // 값 자동 할당
private Long id;
//@GeneratedValue(strategy = GenerationType.Auto) - 방언에 따라 자동 지정, 기본
//@GeneratedValue(strategy = GenerationType.IDENTITY) - auto increament
//@GeneratedValue(strategy = GenerationType.IDENTITY) - auto increament
@Column(name = "name") // 테이블의 name 컬럼을 username과 매핑
private String username;
// nullable, unique, length 등
private Integer age;
@Enumerated(EnumType.STRING) // enum 타입 매핑- ordinal 사용 x
private RoleType roleType;
@Temporal(TemporalType.TIMESTAMP) //날짜 매핑
private Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
private Date lastModifiedDate;
// java 8 이후 temporal 매핑 없이 가능
private LocalDate dt1;
private LocalDateTime dt2;
@Lob // clob, blob 큰 varchar
private String description;
@Transient // db영향 x, 매핑 무시
private string temp;
}
출처
728x90
반응형
'개발자의 삶 > JPA' 카테고리의 다른 글
[JPA] Proxy, Lazy & Eager Loading, Cascade, Orphan (0) | 2022.02.24 |
---|---|
[JPA] Persistence Context, Relationship Mapping, Inheritance Mapping, MappedSupperClass (0) | 2022.02.23 |
[JPA] JPA vs hibernate vs Spring Data JPA (0) | 2022.02.18 |
[JPA] study note (0) | 2022.02.18 |