4

我正在尝试将实体映射如下

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

我可以保证如果未找到数据将只返回一个或 null,但休眠似乎忽略了我的 @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

关于如何将@OneToOne 关系与@Where 子句映射的任何想法?

谢谢

4

2 回答 2

0

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

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

于 2010-03-26T13:28:25.933 回答
0

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

于 2018-02-15T14:36:04.323 回答