【问题标题】:Conditional Join in HibernateHibernate 中的条件连接
【发布时间】:2013-08-20 16:04:39
【问题描述】:

这是我正在做的事情: 它们是针对此的表 MEDIA,它们是 MEDIA_TAGS 表中的多个条目。因此,基于媒体标签的一些用户输入,我必须获取 MEDIA 表记录。所以在这里我必须加入表 MEDIA 和 MEDIA_TAGS 只有当它们是媒体标签的输入时。

由于它是旧系统,我无法修改 hbm 文件中的现有映射。 我想知道它们在 Hibernate 中是否有任何功能可以根据特定条件或动态输入在另一个表上添加连接。

这是否可以通过预定义的过滤器实现,或者是他们在休眠映射中实现这一点的任何方式。对此的任何指示都对我有很大帮助。

【问题讨论】:

  • 看起来您正在寻找编写一个简单的查询,添加带有标签名称的 where 子句应该可以解决您的目的。您也可以在休眠中添加命名查询,但您提到您无法更改 hbm 文件。
  • 感谢 Sachin 的回复。是的,我可以添加命名查询,但问题是我无法修改现有流程。他们是否有任何替代方案来实现它。
  • 所以,看起来您无法更改 hbm 文件,甚至无法更改流程,那么我建议您在数据库级别探索选项,如果可能的话,您可以重命名现有表并使用相同的视图创建视图名称,您可以在视图中添加查询。

标签: hibernate hibernate-mapping hibernate-criteria hibernate-filters


【解决方案1】:

我使用 hibernate criteria.createAlias(.. 来解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 2017-11-14
    • 2018-01-19
    • 2019-02-25
    • 2013-12-30
    相关资源
    最近更新 更多