내 오라클 데이터베이스에 삽입 될 때마다 엔터티 ID가 시퀀스로 자동 생성되도록 트리거를 만들었습니다.시퀀스가없는 오라클의 @GeneratedValue
문제는 Hibernate/JPA에 대한 이러한 엔티티에 주석을 달기와 함께 제공됩니다. @GeneratedValue
주석을 정의해야하지만 시퀀스 이름을 지정하고 싶지는 않습니다. 그렇게하면 Hibernate가 먼저 시퀀스를 쿼리 한 다음 방아쇠로 이미 완료된 작품입니다.
제안한 시나리오로 @GeneratedValue에서이 시퀀스를 건너 뛸 수있는 방법이 있습니까? ID가 제공되지 않으면
예외 내가 얻을 :
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): Pattern
패턴 클래스 :
어떤 코드에서@Entity
@Table(name = "PATTERN")
public class Patron extends HistoricoAbstractEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@Column(name = "ID_PATTERN")
private Integer idPattern;
@Column
private String description;
@Column(name = "NEGATIVE")
private Boolean isNegative;
@Column(name = "type")
private Integer type;
@Column(name = "N_DAYS")
private Integer numDays;
... (getters & setters)
}
구현을 사용하여 이미 ID를 생성하는 경우 @GeneratedValue를 사용해야 할 필요가 있는지 알려주십시오. –
ID를 지정하지 않으면, Hibernate는'save' 메소드를 사용할 수 없다고 알려줍니다. –
당신은 id를 지정할 필요가 있지만 @GeneratedValue를 사용할 필요가 없습니다. 당신이 엔티티에서 @Id를 지정하지 않으면 @ Id를 사용하십시오. 그러면 최대 절전 모드가 불평 할 것입니다. –