Entity 식별자가 없는 경우 persist() 호출 시 오류

선종우·2023년 6월 15일
0

실험실

목록 보기
3/4

1. 실험내용

  • 궁금증 : Entity 식별자를 수동설정하는 경우 Id가 없으면 어떻게 될까?
  • 예제코드
public class Main {
    public static void main(String[] args) {

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("practice"); //persistence.xml persistence-unit name
        EntityManager em = emf.createEntityManager();
        EntityTransaction tx = em.getTransaction();

        try{
            tx.begin();
            Member member = new Member();
            //member.setId(1L);
            member.setName("sun");
            em.persist(member);
            tx.commit();
        }catch (Exception e){
            e.printStackTrace();
            tx.rollback();
        }finally {
            em.close();
        }

        emf.close();
    }
}
  • Member Entity에서는 @GeneratedValue를 사용하지 않아 Id가 자동생성되지 않는다.

2. 결과 : 예외발생

  • IdentifierGenerationException 발생한다.
  • 상세 오류 내용은 아래와 같다.
Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): org.Entity.Member

0개의 댓글