2012-05-31 37 views

回答

1

字段不能最終,因爲靜態最終字段應該分配:

  1. 連同聲明或靜態初始化

這是無法完成的,因爲應該分配的值對於創建元模型類的值是不知道的。當創建EntityManagerFactory時,值由提供者分配。

後果是屬性必須是易失性的,以保證其他線程可以看到提供者分配的值。

+0

我不太瞭解volatile。但爲什麼這些領域需要特定的價值?爲什麼他們不能爲它分配一個隨機的SingularAttribute實現。例如new SingularAttributeImpl();在生成步驟。標準查詢需要知道類型(IS A SingularAttribute,CollectionAttribute等)和泛型參數。這是因爲提供者的內部工作原理嗎? –

+0

現在,我更好地瞭解SingularAttribute的API,我可以看到稍後將由提供程序設置的一些其他數據。所以這個生成工具有點笨拙,它不處理annotations/xml來提供所需的所有信息。它委託供應商稍後做(基本上不是非常靜態的:P)。謝謝。 –

相關問題