JPA Hibernate Find ID by ID&版

时间:2011-05-23 12:50:36

标签: hibernate jpa

JPA中的find方法只接受主键,有没有办法包含Version属性来查找实体。

1 个答案:

答案 0 :(得分:2)

为什么要使用version属性来查找实体?如果您正在使用代理主键字段(根据Hibernate的建议),您应该能够通过id识别一行。

hibernate使用Version字段来确保在加载和持久化之间不会更改加载的实体。

如果你真的想使用id和版本,你需要一个查询:

    Query query = session.createQuery("select from MyTable where id = ? and version =?");
    query.setParameter(0, myId);
    query.setParameter(1, myVersion);
    query.uniqueResult();