2011年4月19日 星期二

[JPQL][Annotation] Brief JPQL API

* @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="teacherSEQ")
  • strategy = GenerationType.SEQUENCE: 主键策略
  • generator = "teacherSEQ": 寻找数据库中sequence的名字的中间量.
  • 若使用 @GeneratedValue(strategy = GenerationType.SEQUENCE)
    • 则 hibernate 在 oracle 中自动生成一个sequence, 这个 sequence 可能是与其他表共用的, 但是这不影响主键的唯一性.

* 查询表达式被赋予泛型。一些典型的表达式是:

  • Root: 相当于一个 FROM子句。
  • Predicate: 其计算为布尔值 true 或 false(事实上,它被声明为 interface Predicate extends Expression)。
  • Path: 表示从 Root表达式导航到的持久化属性。Root是一个没有父类的特殊 Path
  • QueryBuilder: 是 CriteriaQuery和各种查询表达式的工厂。
  • CriteriaQuery: 被传递给一个可执行查询并保留类型信息,这样可以直接访问选择列表的元素,而不需要任何运行时强制类型转换。

* Reference
- Hibernate中连接Oracle10g(使用annotation标识数据库中的sequence)
- JPA2.0的学习一 **
- JPA 2.0 中的动态类型安全查询 **

沒有留言:

張貼留言