我正在尝试将实体映射为以下
@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关系的任何想法?
由于
答案 0 :(得分:0)
你的@OneToOne似乎没有使用连接表。
在这种情况下,你不应该使用@Where注释而不是@WhereJoinTable来过滤连接表的行吗?
答案 1 :(得分:0)
使用@JoinColumn
时,在源表中创建引用列(因为它是一对一关联),这样可以避免创建连接表。