0

可能重复:
休眠:具有相同标识符值的不同对象已与会话关联

我是 Hibernate 的新手,无法从 api 中理解这一点。session.get 的 api 说:

Object org.hibernate.Session.get(Class clazz, Serializable id)

返回具有给定标识符的给定实体类的持久实例,如果没有这样的持久实例,则返回 null。(如果实例已经与会话关联,则返回该实例。此方法从不返回未初始化的实例。)

这里的标识符是什么意思。在大多数示例中,他们将其命名为 1L(可能是因为表中的主键是 Long?)我不明白它的本质。

4

1 回答 1

3

这里的标识符是什么意思

实体的标识符是用@Id或注释的属性@EmbeddedId

如果您的班级使用long代理标识符,您将使用 session 如下:

session.get(MyClass.class, 1);

如果您的类使用嵌入式 id,您可以将该@Embeddable类的实例传递给 get 方法。

session.get(MyClass.class, new MyClassIdentifier("String", 1));
于 2012-08-09T13:27:58.323 回答