복붙노트

[SPRING] 동일한 JPA 클래스에 대한 다중 데이터베이스 지원

SPRING

동일한 JPA 클래스에 대한 다중 데이터베이스 지원

우리는 프로젝트에 MYSQL과 Hibernate를 사용한다.

JPA는 DB에 객체를 저장하는 데 사용됩니다.

비슷한 코드를 가진 다중 클래스가 있습니다.

@Entity
@Table(name = "users")
class Users implement Serializable {
   @Id
   @GeneratedValue(strategy=GenerationType.AUTO)
   private Long id;
    .
    .    
    .
   public Long getId() {
    return id;
   }

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

이제 oracle에 대한 지원도 제공하려고합니다. 어떻게해야합니까? strategy = GenerationType.AUTO는 Oracle에서 지원하지 않습니다.

우리가하고 싶지 않은 각 POJO에서 시퀀스를 정의 할 수 있습니까?

앞으로 나아갈 수 있도록 의견을 보내주십시오.

해결법

  1. ==============================

    1.AUTO 전략은 Oracle에서도 작동해야합니다. MySQL과의 차이점은 auto_increment ID를 사용하는 대신 시퀀스를 사용한다는 것입니다.

    AUTO 전략은 Oracle에서도 작동해야합니다. MySQL과의 차이점은 auto_increment ID를 사용하는 대신 시퀀스를 사용한다는 것입니다.

    원하는 경우 엔티티 별 순차 이름을 제어 할 수도 있습니다. 오라클의 @GeneratedValue (strategy = GenerationType.AUTO)에서 최대 절전 모드를 참조하십시오.

  2. ==============================

    2.

    @Id
        @SequenceGenerator(name="admin_seq", sequenceName="unique_id")
        @GeneratedValue(strategy=GenerationType.AUTO, generator="admin_seq")
        private Long id
    

    나를 위해 일했다. 당신의 모든 답을 고맙다.

  3. from https://stackoverflow.com/questions/11611046/multiple-database-support-for-same-jpa-classs by cc-by-sa and MIT license