【问题标题】:Using a domain object to fetch data使用域对象获取数据
【发布时间】:2013-04-16 02:57:38
【问题描述】:

我有一个具有 id(自动生成)、person_id、airport_id、姓名、职位、状态的域对象。 person_id 和 airport_id 组合可以唯一标识一行。

有没有办法填写这两个属性并通过hibernate发送域对象,以便hibernate自动填充其他字段。实现此目的的另一种方法是命名查询,但这是我的最后一个选择。

请帮忙。

【问题讨论】:

  • 您想在不使用查询的情况下获取内容(使用 2 个参数)?

标签: java hibernate


【解决方案1】:

如果您使用的是HibernateTemplate,则可以利用findByExample(Object) 方法。

其中,传递给findByExample 方法的参数将是criteria object - 因此,在您的情况下,entitypersonIdairportId 设置。 findByExample(entity) 的结果是一个List,其中包含所有匹配的实体并填充了其他数据。

如果您使用的是普通休眠,您可以使用Criteria 实现此目的。

Criteria c = session.createCriteria(YourEntity.class);
c.add(Restrictions.eq("personId", p_id_value));
c.add(Restrictions.eq("airportId", a_id_value)); 
c.list(); //This should again return a list containing all the matching entities with the values filled

【讨论】:

  • 谢谢,先用 Criteria 试试这个。
  • OP 应该注意,这种方法并没有按照您的要求进行:“填写 2 个字段......其他字段将被填充”。结果将是另一个对象实例,而不是 Hibernate 将缺少的属性填充到您的 Example 对象。 (而且你要求的方式在Hibernate中根本不合理,你最好放弃这个想法)
  • 如果是这样,那么您可以接受这个作为答案。提前致谢。
猜你喜欢
  • 1970-01-01
  • 2013-10-09
  • 2020-03-19
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
  • 2017-11-12
  • 1970-01-01
相关资源
最近更新 更多