클로저 (FCM)와 제네릭을 결합하면 완전한 유형 안전 기준을 가질 수 있습니다.클로저는 완전히 유형 안전 기준을 의미합니까?
// The following works without a cast as Foo.id is a 'long' field.
List<Long> ids = session.createCriteria(Foo.class)
.setProjection(Foo#id)
.list();
// The following is a compilation error, as Foo.bar is defined as an int, and not a string
session.createCriteria(Foo.class)
.addRestriction(Restrictions.eq(Foo#bar,"blah"))
.list();
유형 안전 기준에 대한 JPA 2.0 스펙을 읽었습니다. 그러나 여전히 다소 부족합니다.
게다가 여기서는 코드의 유형 안전성을 전반적으로 향상시키는 기준으로 여기에 기준을 사용하고 있습니다. 자바의 정적 유형 지정을 사용하여 코드를 더 빨리 처리 할 수있었습니다. 하지만 결과적으로 지금은 물어 뜯고 타이핑을 무시하는 코드의 부분을 사용하게됩니다. 예를 들어 HQL 쿼리.
내가 바로 잡아 보자. 2 일 전에 클로저가 자바의 일부가 될 것이라고 발표되었고 이것이 JPA 쿼리 작성에 어떻게 영향을 주길 원합니까? 나는 지역 사회의 어느 누구도 FCM 스타일 폐쇄의 파급 효과를이 정도까지 해결했다고 생각하지 않습니다. – rtperson