2017-10-19 9 views
0

Dans mon projet, j'utilise Spring et Hibernate. J'utilise MySql et utilise l'incrémentation automatique pour les Ids. Mais maintenant je dois supporter plusieurs types de bases de données. (installations séparées). Say, MySql, Oracle (11g), Postgresql, etc.Basculer entre les bases de données au printemps/hibernation

Mon idée actuelle est d'utiliser uuid pour les clés primaires puisque je peux passer à n'importe quelle base de données sans trop me soucier de la couche de base de données. Mais depuis que j'ai utilisé Integer pour auto_increment, je dois modifier ma base de code.

Y a-t-il un moyen de préserver l'identifiant entier? ou dois-je procéder avec uuid?

mise en œuvre actuelle

@Id 
@GeneratedValue 
@Column(name = "id", nullable = false, updatable = false) 
private Integer id; 

Ou cela, (ou toute autre solution)

@GeneratedValue(generator = "uuid") 
    @GenericGenerator(name = "uuid", strategy = "uuid") 
    @Column 
    @Id 
    private String id; 

Répondre