반응형
@Transactional
public void test(){
    //entity는 대충 만들어졌다고 침
    entity1 = entityRepository.save(new Entity1()); 
    //여기서 save; seq는 mysql-autoincrement
    log.info(entity1.seq);
}


//////////////////////////
@Entity
@Table(name = "hd_test")
//@IdClass(Entity1.Pk.class)
public class Entity1 {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private BigInteger seq;
//    @Id
    private LocalDateTime logDate;
	...
}

entity1.seq가 null이 아닌 경우

  1. @Transactional이 있을 때 / 없을 때 (상관없음)
  2. entity의 @Id가 seq 한 개 이고 @GeneratedValue = Identity일 경우
    • composite key이거나 @GeneratedValue가 없으면 에러 남

참고로 @GeneratedValue는 primary key 일 때만 작동

 

참고:

https://dogcowking.tistory.com/61

 

composite id 사용하는 개체 save 후 ID 받기

* 개요 Hibernate 에서 composite key (복합키) 로 선언했을 때 하나의 컬럼은 자동 생성이 가능한가? ex : INSERT 그룹명은 지정해주고, 그룹내 번호는 DBMS 에 의해 자동 생성되는 경우 * 일반적인 composite id

dogcowking.tistory.com

 

728x90
반응형

+ Recent posts