2011-08-12 62 views
1

我試圖使用Enver的RevisionEntity存儲修訂註釋,以便它與修訂ID和時間戳位於同一個表中,即使多個實體發生更改也只會存儲一次。將數據傳遞給envers修訂監聽器

我目前的做法是

    處理該請求提出的意見爲可變會話
  • 控制器動作
  • 我的自定義RevisionListener讀取會話變量,添加註釋到RevisionEntity,並清除會話變量

雖然我並不滿意這種方法。看起來它很容易出現競爭狀況和其他愚蠢行爲。有什麼辦法可以讓這個更堅實嗎?也許通過直接在控制器操作中訪問RevisionEntity?

回答

2

我不確定我是否真的瞭解您的問題,但如果您只想在請求處理過程中存儲一些信息,則可以使用 Http.Request.current().args。作爲description in the API docs說,它是:

可用空間來存儲您的要求的具體數據

你的控制器動作將只需要註釋從params(或其他任何地方他們來自)複製將它們存儲在args映射中,然後RevisionListener可以從那裏檢索它們。

+0

我被監聽器關閉的空間中我無法操縱它,但通過請求參數傳遞數據的工作很好。 –

+0

那麼你如何從RevisionListener訪問Http.Request.current()。args? – DonkeyKong

相關問題