结合闭包(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 查询。