우리 응용 프로그램에는 여러 항목이 있으며 MySQL
데이터베이스로 개발되었습니다. 모든 엔티티 extends
은 공통 기본 엔티티입니다.Oracle 데이터베이스의 고유 일련 번호를 생성하는 방법
@MappedSuperclass
public class BaseEntityData implements Serializable
{
/**
* Data identifier (Usually holds Primary Key)
*/
private Long id;
/**
* @return the id
*/
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
public Long getId()
{
return id;
}
/**
* @param value the id to set
*/
public void setId(final Long value)
{
this.id = value;
}
}
우리의 모든 기관은 BaseEntityData
확장하고 모든 MySQL
데이터베이스에 완벽하게 일했다. 우리는 개발 중에 Oracle database
에서 테스트하기 위해 경계하지 않았다. 이제 다른 클라이언트 요구 사항의 Oracle database
에 테스트하려고하지만 Oracle database
은 기본 키의 일련 번호를 생성하지 않으며 때때로 중복 키를 생성하지 않습니다. 모든 수퍼 테이블에 대해 고유 한 키를 생성하려면이 수퍼 클래스 BaseEntityData
을 어떻게 수정할 수 있습니까? 이 수퍼 클래스를 확장하는 엔티티가 300 개가 넘습니다.
시퀀스를 사용하십시오. 오라클이 수행하는 방식 (그리고 대부분의 다른 DBMS)과 같습니다. 나는 JPA를 정말로 모른다. 그러나 나는 "시퀀스"에 대한 generater 전략이 있다고 생각한다. –