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

如何在休眠公式中使用OneToOne

谷梁翰飞
2023-03-14
问题内容

我想使用设置OneToOne实体Formula

我尝试了以下操作,但结果始终是null(我想是因为该列KEY_MEDIA_CONTENT始终是null):

@OneToOne
@JoinColumn(name="KEY_MEDIA_CONTENT")
@Formula(value = "SELECT MEDIAASSET_ORDER_ID AS KEY_MEDIA_CONTENT FROM PRODUCTION_MEDIAASSET_NEW WHERE KEY_TEXT=1 AND PRODUCTION_ORDER_ID=PRODUCTION_ORDER_ID")
private MediaAssetOrder keyMediaAsset;

似乎Formula忽略了。

如何使用某实体引用实体Formula


问题答案:

@Formula被忽略,因为它仅可替代@Column。而且那个不用于关系映射。

但是您可以@Where改为使用它,它存在于集合中:

@OneToMany
@JoinTable(name = "PRODUCTION_MEDIAASSET_NEW", joinColumns = @JoinColumn(name = "PRODUCTION_ORDER_ID", referencedColumnName = "MEDIAASSET_ORDER_ID"))
@Where("KEY_TEXT = 1")
private Collection<MediaAssetOrder> keyMediaAsset;

要访问原始keyMediaAsset对象,可以使用特定的吸气剂:

public MediaAssetOrder getKeyMediaAsset() {
  return keyMediaAsset.isEmpty() ? null : keyMediaAsset.iterator().next();
}


 类似资料:
  • 问题内容: 我想将hibernate与MS Access一起使用。我应该使用哪种方言,您能否通过MS Access给我一个示例hibernate配置文件? 问题答案: 对于MS Access,您需要HXTT的方言。您需要使用HXTT提供的hibernate支持包。还有一个示例项目,您可以检查一个完整的示例。 下面是最小配置示例: PS:如果MS Access不是一成不变的要求,也许您应该考虑使用其

  • 问题内容: 我在MySQL中使用group_concat编写了一个查询,例如 并给出我的预期结果。 现在,我想使用休眠条件编写相同的查询。 问题答案: 简单的答案是 否定的 为什么? Hibernate仅支持在多个数据库中使用的通用功能/语法。Microsoft SQL Server中没有任何功能,也可能在其他数据库中。 解决方案: 您必须将其作为简单SQL查询执行。

  • 问题内容: 我正在浏览hibernate文档,并遇到了逆属性的概念。我是Hibernate的新手,所以我很难正确理解该概念。 http://docs.jboss.org/hibernate/orm/3.3/reference/zh- CN/html/collections.html#collections- bidirectional 从上面的代码中,应用于类别,因此我知道类别是相反的一端。 但是

  • 问题内容: 我将jaybird 2.2.3和hibernate 3.5一起使用,当我使用向导hibernate映射文件和pojos数据库时,出现以下错误“ java.lang.NullPointerException” 我在mysql上使用了相同的映射,并且可以正常工作,所以我相信这是jaybird中的问题 编辑: 有人能帮我吗? 问题答案: 在深入研究了Netbeans的代码并向Jaybird添

  • 问题内容: 我在使用hibernate和MySQL时遇到了一些问题。我一直在读书,但我变得更加困惑,所以我想你可以帮助我理解下一步该怎么做。 我有一个MySQL数据库,在其中添加了此存储过程(感谢Stack Overflow的人们) 我读过某个地方,使用hibernate模式调用函数和过程将非常相似。然后,我发现(巧合地也在StackOverflow中)使用Hibernate从我的Java应用程序

  • 问题内容: 如何将sql查询写入休眠条件? 问题答案: 认为我找到了答案。您必须使用Projection.sqlProjection()而不是Projections.sum()。例: