본문 바로가기
프로그램/스프링

엔티티 생성 및 기본 테스트

by cbwstar 2021. 6. 22.
728x90
반응형
package com.example.chat04;

public enum RoleType {
    ADMIN,USER
}
package com.example.chat04;

import javax.persistence.*;
import java.util.Date;

@Entity
@Table(name="MEMBER", uniqueConstraints = {@UniqueConstraint(name = "NAME_AGE_UNIQUE",columnNames = {"NAME","AGE"})})
public class Member {

    @Id
    @Column(name = "ID")
    private String id;

    @Column(name = "NAME", nullable = false, length = 10)
    private String username;

    private Integer age;

    @Enumerated(EnumType.STRING)
    private RoleType roleType;

    @Temporal(TemporalType.TIMESTAMP)
    private Date createDate;

    @Temporal(TemporalType.TIMESTAMP)
    private Date lastModifiedDate;

    @Lob
    private String description;

    @Transient
    private String temp;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public RoleType getRoleType() {
        return roleType;
    }

    public void setRoleType(RoleType roleType) {
        this.roleType = roleType;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getLastModifiedDate() {
        return lastModifiedDate;
    }

    public void setLastModifiedDate(Date lastModifiedDate) {
        this.lastModifiedDate = lastModifiedDate;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getTemp() {
        return temp;
    }

    public void setTemp(String temp) {
        this.temp = temp;
    }
}

 

package com.example.chat04;


import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import java.util.List;

public class Chat04Application {

    public static void main(String[] args) {

        //엔티티 매니저 팩토리 생성
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");
        EntityManager em = emf.createEntityManager();  //엔티티 매니저 생성

        EntityTransaction tx = em.getTransaction();  //트랜잭션 기능 획득

        try {
            tx.begin();  //트랜잭션 시작
            logic(em);   //비즈니스 로직
            tx.commit(); //트랜잭션 커밋
        } catch (Exception e) {
            e.printStackTrace();
            tx.rollback();  //트랜잭션 롤백
        } finally {
            em.close();  //엔티티 매니저 종료
            emf.close(); //엔티티 매니저 팩토리 종료
        }
    }

    private static void logic(EntityManager em) {
        String id = "id1";
        Member member = new Member();
        member.setId(id);
        member.setUsername("지한");
        member.setAge(2);

        //등록
        em.persist(member);

        //수정
        member.setAge(20);

        //한건 조회
        Member findMember = em.find(Member.class,id);
        System.out.println("findMember =" + findMember.getUsername() + ",age=" + findMember.getAge());

        //목록 조회
        List<Member> members = em.createQuery("select m from Member m",Member.class).getResultList();
        System.out.println("members.size = " + members.size());

        //삭제
        em.remove(member);

    }

}

 

728x90
반응형

'프로그램 > 스프링' 카테고리의 다른 글

모델2 -연관관계  (0) 2021.06.22
모델1-기본테이블 생성  (0) 2021.06.22
pom.xml  (0) 2021.06.22
persistence.xml  (0) 2021.06.22
Spring Data JPA 사용 및 설정  (0) 2021.06.01

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading