首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用组合键的一对一映射

使用组合键的一对一映射
EN

Stack Overflow用户
提问于 2013-11-11 22:16:10
回答 1查看 2.4K关注 0票数 4

目标是关联urls。

使用以下sql,

代码语言:javascript
复制
CREATE TABLE `profiles` (
   `id` serial ,
   `url` varchar(256) ,
    PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `linked_profiles` (
   `profile` bigint unsigned references profiles(id),
   `linked` bigint unsigned references profiles(id),
    PRIMARY KEY  (`profile`, `linked`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这是hibernate映射。

代码语言:javascript
复制
<hibernate-mapping>
  <class name="LinkedProfiles" table="linked_profiles">
   <composite-id>
    <key-property name="profile" column="profile" type="long" />
    <key-property name="linked" column="linked" type="long" />
   </composite-id>
   <one-to-one name="profile" class="Profile" cascade="save-update">
   </one-to-one>  
   <one-to-one name="linked" class="Profile" cascade="save-update">
   </one-to-one>       
  </class> 
  <class name="Profile" table="profiles">
     <id name="id" type="long">
       <column name="id" not-null="true"/>
       <generator class="identity"/>
     </id>
     <property name="url" type="java.lang.String">
       <column name="url"/>
     </property>     
  </class>
</hibernate-mapping>

目标:每个唯一的url在“profile”表中都有一个条目。“linked_profiles”与两个urls相关。

这将导致此异常。

org.hibernate.MappingException::profile.id of: LinkedProfiles的列映射已损坏

这是Hibernate的一个缺陷吗?请参阅https://hibernate.atlassian.net/browse/HHH-1771

EN

回答 1

Stack Overflow用户

发布于 2014-07-10 14:14:07

复合关键字意味着如果任何组件关键字发生更改,它将生成另一个唯一关键字。现在考虑以下内容:

代码语言:javascript
复制
 profiles:
id  |url     |
----|--------|
1   |someUrl |
2   |someUrl2|
3   |someUrl3|



linked_profiles:

profile  |linked    |
---------|----------|
1        |3         |->still a valid composite key
1        |2         |->still a valid composite key

这些是hibernate允许您添加的一些示例。因此,one-to-one对Hibernate没有意义,这导致了org.hibernate.MappingException: broken column mapping的超越。因此,如果您将one-to-one更改为many-to-one,它将会起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19908509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档