我只是在學習 JPA 標準和元模型。我找到了以下元模型示例:@StaticMetamodel( Person.class )public class Person_ { public static volatile SingularAttribute<Person, Long> id; public static volatile SingularAttribute<Person, String> name; public static volatile SingularAttribute<Person, Integer> age; public static volatile SingularAttribute<Person, Address> address; public static volatile SetAttribute<Person, Order> orders;}此元模型的所有字段均為空。那么,誰能解釋一下 JPA 提供程序將如何獲取,例如,以下示例中的字段名稱:criteria.where(builder.equal( personRoot.get( Person_.age ), 50));
1 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
這些字段在運行時不為空,因為 JPA 實現將所有這些公共靜態字段設置為非空值。
規范摘錄(6.2.2 - Bootstrapping):
當持久化單元的實體管理器工廠被創建時,持久化提供者負責初始化持久化單元的元模型類的狀態。
添加回答
舉報
0/150
提交
取消