2017-05-18 1 views
0

JPA 2.1을 사용 중이며 주어진 클래스의 필드 이름을 가져 오는 간단한 방법처럼 JPA 스코프 외부에서 메타 모델을 참조하려고했습니다. 내가 얻을 기다리고 있었다Java - criteria API - JPA 외부에서의 사용

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

: 나는 그렇게 할 때, 나는 NPE를 받고 결국 : 표준 출력에서 ​​"속성 ID를"대신 나는 NPE를 얻을. ID 쿼리에서 동일한 쿼리를 사용하면 예상 한 결과를 얻습니다.

Job_class는 특별한 것이 없으며 참조 할 수 있어야하는 정적 클래스입니다. 기준 API를 사용하는 방식을 살펴보면 동일합니다. 나는 Attribute 나 SingularAttribute를 전달하며, JPA에게 필터링 할 속성이 무엇인지 알려줍니다.

이 작업을 수행 할 수 있어야합니까, 아니면 크게 잘못된 작업을 수행해야합니까?

답변

0

정적 메타 모델의 필드는 JPA 공급자 (hibernate, eclipselink ...)에 의해 런타임에 채워집니다.

SerializedLambda를 사용하여 람다 식으로 속성 이름을 가져 오는 방법이 있습니다. 이것

봐 : https://github.com/benjiman/lambda-type-references 그리고이 : http://benjiweber.co.uk/blog/2013/12/28/typesafe-database-interaction-with-java-8/

+1

감사합니다, 내가 사용 또는 예상대로 설정 최대 절전 모드가 작동하면. – Walter