【问题标题】:Can somebody explain what this hibernate method does,有人可以解释一下这种休眠方法的作用吗?
【发布时间】:2011-03-21 04:58:00
【问题描述】:

我是hibernate的初学者。我在网上看到了一些示例,

org.hibernate.Session session;

//assuming session instance is initialized 

    SampleBean msoft=(SampleBean)session.get(SampleBean.class,id);
    //**id** is of the type Long

文档解释是,

Object get(Class clazz, Serializable id)

返回具有给定标识符的给定实体类的持久实例,如果没有这样的持久实例,则返回 null。

我想知道,

  1. 这里id是不是主键?
  2. 有人能解释一下这种方法是如何工作的吗?是否只返回 SampleBean 对象中的一行?
  3. 如果返回多行会怎样?

PS:使用SampleBean映射的表的主键是INT类型。

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    我想知道,这里的id是否在 主键?

    是的。 id 应该是唯一的。

    有人能解释一下吗,这是怎么回事 方法有效,

    查找指定 ID 的 DB 并返回 clazz 的实例。

    是否只返回一行 SampleBean 对象?

    是的。由于 id 是唯一的,应该只有一行。

    如果返回更多会发生什么 不止一行?

    如果 id 是唯一的或主键,则不会发生。

    【讨论】:

      【解决方案2】:

      是的,这里的 id 是主键。它将是指定实体使用的任何类型的实例作为其主键(通常是整数、长整数或字符串,尽管其他类型完全可能)。

      该方法通过转到与给定实体类型(在本例中为SampleBean)对应的数据库中的表并根据主键执行提取来工作。本质上,它运行的 SQL 查询大致类似于SELECT * FROM sampleBeanTable t WHERE t.primaryKey = [id];

      最多将返回 1 行(或更准确地说,实体的 1 个实例)(或者您的数据库实例非常非常损坏,因为如果有多行则意味着两个或多个对象具有相同的键) .如果没有找到具有给定键的对象,则该方法返回null

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多