我很好奇,如果任何人都有使用私有字段而不是公共getter方法註釋實體之間的性能差異的任何硬數字。我聽說有人說字段比較慢,因爲它們被稱爲「通過反射」,但是再一次,getter方法也是如此,不是嗎?休眠需要設置字段的可訪問性爲真,然後它會嘗試讀取它,我可以看到有一些輕微的開銷。但是,這不是在會話範圍內的Class級別完成的,或者可能只有在Configuration被讀取並構建SessionFactory時才執行?Hibernate/JPA中的註釋字段或getter方法之間的性能差異
只是好奇,如果這是一個神話或如果真的有真相;我個人發現註釋的字段更具可讀性。
get/set方法還需要通過反射來調用。編譯時沒有辦法讓Hibernate知道它需要在類上調用哪些get/set對。我關於設置可訪問性的觀點是它在java.lang.reflect.Field實例的Class級別上完成... – 2008-12-01 23:46:26
ahh是的,我想這很有意義,因爲它必須查找實際名稱。 – 2008-12-01 23:57:45
@ cliff.meyers它總是編譯時間.... Hibernate使用類生成,AFAIK將一個輔助類放入實體包中,因此除了`private`成員(包私有就好)以外,它不需要反射。 – maaartinus 2015-08-07 21:48:13