如何与Hibernate Formula一起使用OneToOne [英] How to use OneToOne with Hibernate Formula
问题描述
我想使用公式
设置 OneToOne
实体。
我尝试了以下,但结果总是 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
被忽略,因为它只是替代 @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
对象,您可以使用特定的getter:
public MediaAssetOrder getKeyMediaAsset(){
return keyMediaAsset.isEmpty()? null:keyMediaAsset.iterator()。next();
}
I want to set an OneToOne
entity using a Formula
.
I have tried the following but the result is always null
(I guess because the column KEY_MEDIA_CONTENT
is always 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;
It seems like the Formula
is ignored.
How can I reference an entity using some Formula
?
@Formula
is ignored, because it is only valid as replacement for @Column
. And that one is not used for relationships mappings.
But you can use @Where
instead, which exists for collections:
@OneToMany
@JoinTable(name = "PRODUCTION_MEDIAASSET_NEW", joinColumns = @JoinColumn(name = "PRODUCTION_ORDER_ID", referencedColumnName = "MEDIAASSET_ORDER_ID"))
@Where("KEY_TEXT = 1")
private Collection<MediaAssetOrder> keyMediaAsset;
To access your original keyMediaAsset
object you can use a specific getter:
public MediaAssetOrder getKeyMediaAsset() {
return keyMediaAsset.isEmpty() ? null : keyMediaAsset.iterator().next();
}
这篇关于如何与Hibernate Formula一起使用OneToOne的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!