2009-10-19 25 views
1

我們嚴格定義了哪些關係是CascadeType.MERGE在我們的應用程序中。這起到了我們版本檢查(樂觀鎖定)的作用。所以,我們的CascadeType定義有時會有MERGE,有時候不會。這對我們的OLTP應用程序來說非常棒。但是,我們也有要求加載數據(可以批量離線執行),其中的關係可能不同。我想要做的是告訴jpa(或eclipselink)在批處理過程中將每個關係視爲CascadeType.MERGE。換句話說,我希望eclipselink在批處理過程中忽略我們的註釋。這可能嗎?以編程方式製作所有關係CascadeType.MERGE

感謝,

回答

2

JPA標準定義了兩種方法來配置實體 - 註釋,其中每一個知道的,和XML文件。 XML中的定義應該覆蓋註釋定義。這意味着你有兩個選擇:

  • 用手
  • 編寫XML文件寫一個小程序來讀取你的實體和(反射)生成的XML文件。

你可以找到的orm.xml文件的例子here

+0

如果我沒有得到任何其他的答案,我會接受這一點。 「編寫一個能讀取你的實體的小程序,並通過反射生成XML文件。」 - 我希望我不必做那些醜陋的事情。我越使用JPA,我越意識到它缺乏多少! – andersonbd1 2009-10-26 14:07:54

+0

你可以隨時做到這一點......這是靈活性的代價。如果我們可以像ruby一樣擁有ActiveRecord,那麼我們就不會靈活地配置對象和數據庫之間的關係(如果它好或者不好,你可以同時爭論) – 2009-10-26 14:22:10

+0

我不同意這是靈活性的代價。我相信這是一個尚未實現的可能功能。 – andersonbd1 2009-10-28 19:51:46

相關問題