Hibernate 这四个对象,应该用什么关系来做
阅读
有个基础对象articlePO.java ,里面是一些文章的基础属性,如title,keywords等等。
文章类型又分为三种类型:news(信息新闻),falsh(fash文章),product(商品文章)。这三种类型又有各自的属性,但基础属性都是article里面。
当发文章的时候,
如发news文章时,那么就等于article属性+news 属性一起提交Dao。
当发falsh文章时,就等于article属性+falsh属性一起提交Dao
当发product文章的时,就等于article属性+product属性一起提给Dao。
我简单写一下这4个PO,请帮我写出来他们的hbm.xml。用什么关系来做,是one-to-one,还是继承,谢谢!
Article.java
int id; //id
String title; //标题
String keywords; //meta.关键字
String description; //meta.描述
int sort;//排序
...
News.java
int id; //id
boolean page;//是否分页
int pagesize; //分页大小
Falsh.java
int id; //id
String falshUrl;//falsh路径
String height; //falsh高度
..
Product.java
int id;//id
String pname;//商品名
String psize;//商品规格
..
从上面大家应该可以看出,falsh,news,product在article里面都有共有的东西,也有各自的属性。应该怎样做关系,怎么建表,建立几个?
能不能简单写一下它们的hbm.xml
我想看看他们的关系应该怎么做,是one-to-one吗?不会写啊我!迷茫
------解决方案--------------------
每个子类一张表(Table per subclass),一共四张表
大概代码如下:
- XML code
<class name="Article" table="Article"> <id name="id" type="long" column="id"> <generator class="native"/> </id> <property name="title" column="title"/> <property name="keywords" column="keywords"/> <many-to-one name="catalog" lazy="true" class="Catalog"> <column name="article_id"></column> </many-to-one> <set name="comments" inverse="true" cascade="all" lazy="true"> <key column="article_id"/> <one-to-many class="Comment" /> </set> ... <joined-subclass name="News" table="News"> <key column="id"/> <property name="page" column="page"/> <property name="pagesize" column="pagesize"/> ... </joined-subclass> <joined-subclass name="Falsh" table="Falsh"> <key column="id"/> <property name="falshUrl" column="falshUrl"/> <property name="height" column="height"/> ... </joined-subclass> <joined-subclass name="Product" table="Product"> <key column="id"/> <property name="pname" column="pname"/> <property name="psize" column="psize"/> ... </joined-subclass> </class>
------解决方案--------------------
用hibernate自动生成工具生成bhm.xml等文件.阅读上一篇:空指针异常,哪位高手能帮小弟我解决一下多谢 下一篇:返回列表