2012-06-14 95 views
0

由於我的控制,我有兩個現有的數據庫幾乎是克隆。EclipseLink/JPA和具有相似結構的多個數據庫

「幾乎」,因爲在#2中不存在表格/列,反之亦然。

這裏最好的辦法是什麼?

「強力」路線似乎是「爲一個創建所有實體,複製到新軟件包併爲第二個數據庫添加/刪除」。這不是我真正想去的路線。


哦,JPA是絕對不允許改變其中任何一個數據庫架構。

除了EclipseLink,我使用Spring 3.1和SpringData。

回答

0

如果你的數據庫不同,你需要創建不同的類/映射。例如,如果你在有DB1 3列(idbazpleh)和DB2其他3列兩個數據庫有一個表Fooidbazqux),你可以這樣做:

@Entity 
public class Foo 
{ 
    @Column(name = "id") 
    private Long id; 
    @Column(name = "baz") 
    private String baz; 
    @Column(name = "pleh") 
    private String pleh; 
    @Column(name = "qux") 
    private String qux; 
} 

這樣做會導致異常的JPA會產生插入語句,如:

insert into Foo (id, baz, pleh, qux) values (?, ?, ?, ?) 

對於DB1,你需要創建一個類Foo這樣的:

@Entity 
public class Foo 
{ 
    @Column(name = "id") 
    private Long id; 
    @Column(name = "baz") 
    private String baz; 
    @Column(name = "pleh") 
    private String pleh; 
} 

而對於DB2這樣的:

@Entity 
public class Foo 
{ 
    @Column(name = "id") 
    private Long id; 
    @Column(name = "baz") 
    private String baz; 
    @Column(name = "qux") 
    private String qux; 
} 
相關問題