今天用mysql自己设计了一个关于网上书店的数据库,是这样的
create database bs; using bs;
create table user(
userid int primary key,
username varchar(12),
password varchar(20),
email varchar(30));create table book(
bookid int primary key,
bookname varchar(20),
publisher varchar(30)) ;create table order(
id int primary key,
bookid int,
userid int,
constraint fk1 foreign key(bookid) references book(bookid),
constraint fk2 foreign key(userid) references user(userid));
这里,我们在设计这个网上书店的时候,一般关系是这样的,对于用户与order,那是<ont-to-many>的关系,没什么话说,但是图书book与订单order的关系,那就是<many-to-one>了吧,我在设计好数据库后,通过myeclipse本身的工具给他生成了pojo类,各个类和hbm.xml文件如下
book.hbm.xml <hibernate-mapping>
<class name="org.tan.model.Book" table="book" catalog="bs">
<id name="bookid" type="java.lang.Integer">
<column name="bookid" />
<generator class="increment" />
</id>
<property name="bookname" type="java.lang.String">
<column name="bookname" length="20" />
</property>
<property name="publisher" type="java.lang.String">
<column name="publisher" length="30" />
</property>
<set name="oroders" inverse="true">
<key>
<column name="bookid" />
</key>
<one-to-many class="org.tan.model.Oroder" />
</set>
</class>
</hibernate-mapping>order.hbm.xml
<hibernate-mapping>
<class name="org.tan.model.Oroder" table="oroder" catalog="bs">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment" />
</id>
<many-to-one name="user" class="org.tan.model.User" fetch="select">
<column name="userid" />
</many-to-one>
<many-to-one name="book" class="org.tan.model.Book" fetch="select">
<column name="bookid" />
</many-to-one>
</class>
</hibernate-mapping>user.hbm.xml
<hibernate-mapping>
<class name="org.tan.model.User" table="user" catalog="bs">
<id name="userid" type="java.lang.Integer">
<column name="userid" />
<generator class="increment"></generator>
</id>
<property name="username" type="java.lang.String">
<column name="username" length="12" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="20" />
</property>
<property name="email" type="java.lang.String">
<column name="email" length="30" />
</property>
<set name="oroders" inverse="true">
<key>
<column name="userid" />
</key>
<one-to-many class="org.tan.model.Oroder" />
</set>
</class>
</hibernate-mapping>
这些文件里,order.hbm.xml <many-to-one name="book" class="org.tan.model.Book" fetch="select">表明这是order与book生成的多对一得关系 与我们的需求不符合,请问大虾们,我该怎么做解决这些问题
create database bs; using bs;
create table user(
userid int primary key,
username varchar(12),
password varchar(20),
email varchar(30));create table book(
bookid int primary key,
bookname varchar(20),
publisher varchar(30)) ;create table order(
id int primary key,
bookid int,
userid int,
constraint fk1 foreign key(bookid) references book(bookid),
constraint fk2 foreign key(userid) references user(userid));
这里,我们在设计这个网上书店的时候,一般关系是这样的,对于用户与order,那是<ont-to-many>的关系,没什么话说,但是图书book与订单order的关系,那就是<many-to-one>了吧,我在设计好数据库后,通过myeclipse本身的工具给他生成了pojo类,各个类和hbm.xml文件如下
book.hbm.xml <hibernate-mapping>
<class name="org.tan.model.Book" table="book" catalog="bs">
<id name="bookid" type="java.lang.Integer">
<column name="bookid" />
<generator class="increment" />
</id>
<property name="bookname" type="java.lang.String">
<column name="bookname" length="20" />
</property>
<property name="publisher" type="java.lang.String">
<column name="publisher" length="30" />
</property>
<set name="oroders" inverse="true">
<key>
<column name="bookid" />
</key>
<one-to-many class="org.tan.model.Oroder" />
</set>
</class>
</hibernate-mapping>order.hbm.xml
<hibernate-mapping>
<class name="org.tan.model.Oroder" table="oroder" catalog="bs">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment" />
</id>
<many-to-one name="user" class="org.tan.model.User" fetch="select">
<column name="userid" />
</many-to-one>
<many-to-one name="book" class="org.tan.model.Book" fetch="select">
<column name="bookid" />
</many-to-one>
</class>
</hibernate-mapping>user.hbm.xml
<hibernate-mapping>
<class name="org.tan.model.User" table="user" catalog="bs">
<id name="userid" type="java.lang.Integer">
<column name="userid" />
<generator class="increment"></generator>
</id>
<property name="username" type="java.lang.String">
<column name="username" length="12" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="20" />
</property>
<property name="email" type="java.lang.String">
<column name="email" length="30" />
</property>
<set name="oroders" inverse="true">
<key>
<column name="userid" />
</key>
<one-to-many class="org.tan.model.Oroder" />
</set>
</class>
</hibernate-mapping>
这些文件里,order.hbm.xml <many-to-one name="book" class="org.tan.model.Book" fetch="select">表明这是order与book生成的多对一得关系 与我们的需求不符合,请问大虾们,我该怎么做解决这些问题
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货