Java - 条件API - JPA之外的用法

时间:2017-05-18 17:24:49

标签: java jpa-2.0 criteria-api

我正在使用JPA 2.1并试图引用JPA范围之外的元模型,这只是获取给定类的字段名称的简单方法。然而,当我这样做时,我最终获得了NPE:

System.out.println("attribute:" + Job_.id.getName());

我期待得到"属性:id"在stdout,但我获得了NPE。如果我在条件查询中使用相同的内容(过滤id),我会得到我期望的结果。

Job_类没什么特别的,它只是一个我应该能够引用的静态类。如果我查看我如何使用条件API,它是完全相同的。我传入一个Attribute或SingularAttribute,告诉JPA我要过滤哪个属性。

我能做到这一点,还是我做了一些严重的错误?

1 个答案:

答案 0 :(得分:0)

静态元模型中的字段由运行时填充,由JPA提供程序(hibernate,eclipselink ...)填充。

有一种方法可以使用SerializedLambda获取带有lambda表达式的属性名称。

看看这个:https://github.com/benjiman/lambda-type-references 这个:http://benjiweber.co.uk/blog/2013/12/28/typesafe-database-interaction-with-java-8/