2014-03-13 105 views
1

我已經通過EclipseLink單表多租戶功能規範。EclipseLink:EntityManager.merge():爲什麼TENANT_ID沒有爲UPDATE操作添加運行時?

以下是部分閱讀,我有點驚訝。

任務4:執行操作和查詢

The tenant discriminator column is used at runtime through entity manager operations and querying. The tenant discriminator column and value are supported through the following entity manager operations: 

    persist() 

    find() 

    refresh() 

The tenant discriminator column and value are supported through the following queries: 

    Named queries 

    Update all 

    Delete all 

爲什麼TENANT_ID不會在運行時使用下面的操作。

merge() 
delete() 

爲什麼以下操作不需要?我需要它,因爲當更新任何記錄時,我需要在UPDATE查詢的WHERE子句中附加TENANT_ID。 因爲,在單一表中的多租戶中,將有多個租戶使用同一用戶的用戶,我需要TENANT_ID才能更新特定的租戶記錄。

請幫我在這,因爲我只在merge()操作卡住了。

回答

0

我們有相同的症狀,對我們的回答是,添加primaryKey=true向租客鑑別註釋,表明tenant_id必須被包括在刪除用於主鍵的一部分和合並操作:

@Multitenant 
@TenantDiscriminatorColumn(name = "tenant_id", contextProperty = "tenant_id", primaryKey=true) 
相關問題