2012-10-23 179 views
0

我試圖在註釋中使用Spring @Value設置屬性,但我得到Type mismatch: cannot convert from Value to String。這是我試過的:如何從屬性中使用Spring @Value設置註釋屬性

@Table(name = "myTable", catalog = @Value("${database.myCatalog}")) 

這可能嗎?如果是的話,該怎麼做?

回答

2

我認爲你對Spring如何使用這個註解有點困惑。

據我所知,唯一可以設置註釋的方式只能是at field or method/constructor parameters

另外,對於Spring來解決它,POJO必須是Spring管理bean。這意味着它必須在Spring(Web)ApplicationContext實現中定義才能解決。

你的問題似乎是你註釋了一個JPA實體,它不是Spring bean,而是你正在使用的JPA實現(例如Hibernate)使用的類。

+1

你是對的,當然一個實體不是Spring Bean。在該註釋中,除了字面值之外,我看到我可以使用另一個類的靜態最終字段。當我的容器啓動時,我可以從構造函數中設置該字段,但最終的要求不能放鬆。因此,如果我想在源代碼之外配置該值,我發現的唯一解決方案是聲明兩個持久化上下文。 – stivlo

相關問題