2016-09-05 44 views
3

我使用hibernate的ORM和hibernate-generator以註解方式生成Entity。我需要經常切換數據庫(dev/release)。所以,我必須每次更改實體的註釋。我想知道是否有方法來配置它。如何根據屬性設置註釋的值?

@Entity 
@Table(name = "my", catalog = "dev_db") 
public class MyEntity { 

} 

正如您所看到的,我必須每次更改目錄。如何根據jdbc.properties進行配置?

+0

是否有可能爲您的情況引入一個專用的目錄參數?那麼你可以把數據記錄放在配置bean中。 –

回答

1

您可以使用Interceptors來修改由休眠生成的SQL。

public String onPrepareStatement(String sql) { 
    String superSQL = super.onPrepareStatement(newSQLWithNamespace); 
    //replace all catalog occurencies with desired value in the superSQL 
    return superSQL; 
} 

參見例如, Add a column to all MySQL Select Queries in a single shot

您的攔截器可以從配置中讀取目錄值並更改SQL。

相關問題