【发布时间】:2009-11-20 21:02:47
【问题描述】:
结合闭包 (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 规范以了解类型安全标准。但还是有些欠缺。
此外,我只是在此处使用标准作为一般改进代码类型安全性的示例。我大量使用 java 的静态类型来让我更快地编写代码。但结果我时不时地被忽略输入的代码部分咬伤。例如 HQL 查询。
【问题讨论】:
-
让我直截了当...两天前宣布闭包将成为 Java 的一部分,您想知道这将如何影响 JPA 查询的创建吗?我认为社区中没有任何人在这种程度上解决了 FCM 式闭包的后果。
标签: java closures criteria type-safety java-7