多个数据库支持相同的JPA类

时间:2012-07-23 10:49:05

标签: java oracle spring hibernate jpa-2.0

我们在项目中使用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。我们该怎么做? 策略= oracle不支持GenerationType.AUTO。

我们可以在每个POJO中定义一个我们不想做的序列吗?

请提供一些意见,以便我们继续前进。

2 个答案:

答案 0 :(得分:2)

AUTO策略也适用于Oracle。与MySQL的不同之处在于它将使用序列而不是依赖于auto_increment ID。

如果需要,您甚至可以控制每个实体的序列名称:请参阅Hibernate sequence on oracle, @GeneratedValue(strategy = GenerationType.AUTO)

答案 1 :(得分:1)

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

为我工作,谢谢你的所有答案