2010-03-08 122 views
1

我有一個端點映射其用於在dabatabase插入一些關鍵字一個web服務:彈簧WS&驗證程序攔截

@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE) 
public Source saveKW(...). 

輸入是一個請求。

我想添加一個攔截器的方法,以驗證參數。 這個人會從數據庫中讀取一些值。

我想這個攔截器是EMBED在爲端點聲明的事務(或相反)。換句話說,我希望他們在同一個交易中。

理想即時尋找這樣的事情與註釋:

@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE) 
@validator("KeyWordValidaor.class") 
public Source saveKW(...) 

其中KeyWordValidaor將類驗證參數。

你有任何想法或簡短的例子來實現這樣的方式或以其他真正的方式嗎?

+0

驗證必須在交易中進行?這聽起來像你的輸入驗證是獨立於交易。 – skaffman 2010-03-08 22:29:27

回答

1

驗證必須位於事務內部,因爲它正在查詢數據庫以測試約束,例如。 我已經找到了我的解決方案。即時通訊使用彈簧aop &我動態加載合適的驗證從春季環境通過地圖。 (很有可能是&未知的autorwired未知bean名稱的特徵!)。 感謝訂單屬性,它在交易中。