使用@Where子句映射@OneToOne

时间:2010-03-26 12:19:40

标签: hibernate where one-to-one

我正在尝试将实体映射为以下

@OneToOne(mappedBy = "localizedLabel")
@JoinColumn(insertable = false, updatable = false)
@WhereJoinTable(clause = "locale='en_US'")
public Localization getEn_US() {
    return en_US;
}

我可以确保数据只返回一个,如果找不到则返回null,但是hibernate似乎忽略了我的@Where子句:

ERROR com.eventtouch.bc.business.core.log.LoggingInterceptor - org.hibernate.HibernateException: More than one row with the given identifier was found: 4211, for class: com.eventtouch.bc.business.domain.LocalizedLabel

关于使用@Where子句映射@OneToOne关系的任何想法?

由于

2 个答案:

答案 0 :(得分:0)

你的@OneToOne似乎没有使用连接表。

在这种情况下,你不应该使用@Where注释而不是@WhereJoinTable来过滤连接表的行吗?

答案 1 :(得分:0)

使用@JoinColumn时,在源表中创建引用列(因为它是一对一关联),这样可以避免创建连接表。