在阅读hibernate references时看到一对多映射的相关配置,有些不懂的地方,望大家帮忙解决下.不胜感激!<class name="Person">
<id name="id" column="personId">
<generator class="native"/>
</id>
<set name="addresses" table="PersonAddress">
<key column="personId"/>
<many-to-many column="addressId"
unique="true"
class="Address"/>
</set>
</class>
<class name="Address">
<id name="id" column="addressId">
<generator class="native"/>
</id>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId not null, addressId bigint not null primary key )
create table Address ( addressId bigint not null primary key )问题来了:这是一对多关系映射,按平常来讲,表中应该有外键来体现一对多关系的,可以从建表语句中怎么发现不了这点呢?望高手指点其中的玄机.谢谢!
<id name="id" column="personId">
<generator class="native"/>
</id>
<set name="addresses" table="PersonAddress">
<key column="personId"/>
<many-to-many column="addressId"
unique="true"
class="Address"/>
</set>
</class>
<class name="Address">
<id name="id" column="addressId">
<generator class="native"/>
</id>
</class>
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId not null, addressId bigint not null primary key )
create table Address ( addressId bigint not null primary key )问题来了:这是一对多关系映射,按平常来讲,表中应该有外键来体现一对多关系的,可以从建表语句中怎么发现不了这点呢?望高手指点其中的玄机.谢谢!
解决方案 »
- 如何在一个Panel中捕获另一个Panel的paint()事件
- 求助各位,为什么我的Spring2.5+Hibernate3.3整合中,HibernateTemplate.find()方法没有执行,系统也不报错
- 那位大哥快帮帮我,在线急等!一个简单的spring MVC入门问题
- javax.activation.UnsupportedDataTypeException: 用javamail碰到的异常,100分求解啊
- struts如何与showModalDialog 方式结合使用
- 高分请教一个事务的问题。
- 请教有关struts的一个关于options标记的问题
- 使用jb5和wl6开发ejb程序,出现严重错误?
- mysql 报错1005 请大神们帮忙解决下
- 求教跨服务器传输文件的问题
- 请求 ibatis如何处理一对多的关系
- 关于系统内自定义报表功能实现的探讨
而数据库表的设计当中见了三张表,而那个PersonAddress表 就是一张二维关系表,便于查找
<set name="addresses" table="PersonAddress">
<key column="personId"/>
<many-to-many column="addressId"
unique="true"
class="Address"/>
</set>
这不是一对多啊,这是多对多吧! PersonAddress 是Pserson 和 Address的中间表!
是多对多时常用的一种办法!
一般按照现在大多数的开发流程 都是先建表再弄映射
而hibernate中可以帮你自动生成表(根据映射) 生成的时候的外键关系也会生成