当前位置: 首页 > 面试题库 >

带有xml映射的Hibernate派生属性

怀齐智
2023-03-14
问题内容

我有一个Detectable带有Revisions集合的类,它们是Hibernate管理的POJO。我也在使用 hbm.xml
文件映射我的实体。当用户转到Detectable管理屏幕时,我希望他将Detectable数据查看到表中,该表还将包含最近Revision完成的工作。但是,只有访问可检测内容的详细信息页面,才能使用完整的修订集。

我的机会是显示最后的修订日期,该日期将作为每个Detectable实例的属性单独加载。所以我有这样的事情:

detectable.hbm.xml

<set name="_Revisions" table="trevision" inverse="true" lazy="true">
    <key>
        <column name="id_detectable" />
    </key>
    <one-to-many class="com.company.model.tasks.Revision" />
</set>

<property name="_LastRevisionDate"
        formula="select max(rev.start_date) from trevision rev where rev.id_detectable = _Id"
        type="date" />

这是行不通的,并且当hibernate尝试执行 公式中
包含的查询时出现SQL语法错误。我在不同的地方看到可以使用标准SQL或HQL来访问此属性,但是我对两者都失败了。还可以Revision仅按日期顺序实现整个实体(我指的是最新修订版)吗?

汇集您的想法!


问题答案:

我终于用以下代码实现了它:

<property name="_LastRevisionDate"
        formula="(select MAX(rev.start_date) from trevision rev where rev.id_detectable = id_detectable and rev.status != 'DRAFT')"
        type="date" />

id_detectable我当前的实体密钥列在哪里。



 类似资料:
  • 问题内容: 我有一个带有集合的类,它们是Hibernate管理的POJO。我还使用 hbm.xml 文件映射了我的实体。当用户转到管理屏幕时,我希望他将数据查看到表中,该表还将包含最近完成的工作。但是,只有访问可检测内容的详细信息页面,才能使用完整的修订集。 我的机会是显示最后的修订日期,该日期将作为每个实例的属性单独加载。所以我有这样的事情: detectable.hbm.xml 这是行不通的,

  • 问题内容: 在我的applicationContext.xml中,这就是将xml映射到POJO的方式。如何将目录映射到类文件而无需创建xml? 问题答案: 您可以通过转换进一步简化操作 至 现在您的包中所有带有注释的类都将自动被拾取。

  • 问题内容: 我在以下情况下使用ObjectMapper,但是,Person类具有JSON属性“ last_name”,当“ name”属性映射良好时,似乎没有被映射。我在下面包括了我的Person类。感谢任何可能发生这种情况的原因。正在使用Jackson核心/映射器1.8.5。 人类: 问题答案: Java Bean规范定义了预期的映射。因此拥有方法意味着将只映射确切的属性“ lastName”。

  • 我对Hibernate Spring MVC有几个问题。这是我从控制器调用数据库实体的示例: 控制器 服务 数据库服务 带有命名查询的car服务 汽车储存库 汽车实体 @Table(name = "car ",catalog = "ATS ")公共类car实现java.io.Serializable { 车型(外键链接,一对多关系) 车队实体 收购实体 我正在使用maven和4.2.1.RELEA

  • 问题内容: 我有一个用户表和一个具有一对一映射表的表,其中一个字段用于此关系,该字段存储相应用户的ID字段值。 如何为此关系编写hibernate文件? 更新 我的问题是用户的主键是,user_detail的外键是 我在Internet用户user_id中获得的所有示例均作为用户主键,与其他表中的外键相同 问题答案: 对于用户映射…。 用于UserDetail映射。

  • 这是我的employee.hbm.xml: 所以,您可以注意到,在我的类中,它没有“id”属性。但是,我在数据库中创建id列,让它成为自动生成的主键。在这种情况下,我不知道应该在将我的类映射到我的数据库。如果我忽略了它,会不会是后来的一些问题呢?