用hibernate做文章模块时的困惑(菜鸟问题)高分求解

qichunren 2007-07-07 08:17:34
在数据库中,我的"文章信息"表和"文章类别信息"表分别如下:
<<<<<文章信息>>>>>
文章ID int
文章标题 varchar(200)
文章类别ID int
发布人 varchar(200)
文章内容 text
发布日期 datetime
其它的一些字段.....

<<<<<文章类别信息>>>>>
文章类别ID int
类别名称 varchar(100)
类别描述 varchar(2000)

现在我想问的是,在设计这两个表在java中的PO:Article和ArticleCatalog,它们的属性应该怎么样设计呢?其它我特别想知道的是Article的类别属性应该是个什么样子的?是int型的呢?还是ArticleCatalog对象型的呢?而且这样设了之后,它们的xml映射应该相应的什么配置呢?什么one to many之间的,搞不懂....

我做这个的时候,我的po完全是根据数据库中的字段来生成对应java对象中的相应属性,感觉在编程的时候,还没有体会到hibernate的乐趣,又看了一些书,说应该将有些po的属性设计成对象属性,如上面所说的Article的文章类别属性,应该设计成ArticleCatalog.

我现在搞不懂了.

所以在这里我想知道,Article.hbm.xml和ArticleCatalog.hbm.xml文件应该怎么配置(包括它们之间的映射关系),还有在编程时,怎么做.你们最好能给我一个"保存文章"的一段代码.可以不用很详细,但是关键地方应该说清楚就行了,要让我看得懂

为了方便,我附上我的一些代码,方便你们:
public class Article {

// Fields

private Integer id;//文章编号

private String title;//文章标题

private Integer catalogId;
//文章类别编号,我这里是不是写错了???应该是???希望说明一下
//private ArticleCatalog catalog;

private String author;//发布人

private String articlefrom;//文章来源

private String content;//文章内容

private Date creDate;//发布日期

private Integer hit;//阅读次数

private String tag;//关键字
//........对应的get和set方法.......
}


public class ArticleCatalog {

// Fields

private Integer id;//文章类别编号

private String name;//类别名称

private String detail;//类别详细描述
//........对应的get和set方法.......
}

它们的*.hbm.xml配制文件如下:

<<<<<<<<<Article.hbm.xml>>>>>>>>>>>>>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.qichunren.cywlw.common.pojo.Article" table="Article" schema="dbo" catalog="WanzhouCanYinDB">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native"></generator>
</id>
<property name="title" type="java.lang.String">
<column name="title" length="200" />
</property>
<property name="catalogId" type="java.lang.Integer">
<column name="catalogId" />
</property>
<property name="author" type="java.lang.String">
<column name="author" length="200" />
</property>
<property name="articlefrom" type="java.lang.String">
<column name="articlefrom" length="300" />
</property>
<property name="content" type="java.lang.String">
<column name="content" />
</property>
<property name="creDate" type="java.util.Date">
<column name="creDate" length="23" />
</property>
<property name="hit" type="java.lang.Integer">
<column name="hit" />
</property>
<property name="tag" type="java.lang.String">
<column name="tag" length="500" />
</property>
</class>
</hibernate-mapping>

<<<<<<<<<ArticleCatalog.hbm.xml>>>>>>>>>>>>>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.qichunren.cywlw.common.pojo.ArticleCatalog" table="ArticleCatalog" schema="dbo" catalog="WanzhouCanYinDB">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="name" length="200" />
</property>
<property name="detail" type="java.lang.String">
<column name="detail" length="5000" />
</property>
</class>
</hibernate-mapping>


这是MyEclipse自动生成的,我想里面应该加上一些东西吧,如one to many之类的.


高手们给我改一下配置和获取文章List的方法和保存文章的方法吧

等我一明白就给分,如果不够,发加帖帖子给分!!!,谢谢你们了.


...全文
232 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qichunren 2007-07-09
  • 打赏
  • 举报
回复
还希望讲详细一点
leonguo_1986 2007-07-08
  • 打赏
  • 举报
回复
LZ是不是没在SQL里建关系图呀?

是one to many 的关系。一个文章类别中可以包含多片文章。
在Article 会有ArticleCatalog 的实例。private ArticleCatalog catalog
在ArticleCatalog 里会有 Article的集合。private Set article = new HashTable(0);

查询的话
string hql = "From Article where ...."
Query query = Session.createQuery(hql);
List lst = query.list();

for(int i=0;i<lst.size();i++) {
Article a = new Article();
a = lst.get(i);
...再从 a 里面取得ArticleCatalog 的实体。就OK了。

}

。。。。你发了好多相同的帖子啊。。。。晕
withJ 2007-07-08
  • 打赏
  • 举报
回复
我不会,我也想知道这个.帮你顶啊
njtucomputer 2007-07-08
  • 打赏
  • 举报
回复
hibernate反向工程会自动生成POJO的,一对多就是用COLLECTION
sanzheng 2007-07-08
  • 打赏
  • 举报
回复
在数据库中建里表之间的关系,hibernate会自动生成关联关系。
qichunren 2007-07-07
  • 打赏
  • 举报
回复
没有高手来哦....
qichunren 2007-07-07
  • 打赏
  • 举报
回复
没有高手来哦....

顶起!
qichunren 2007-07-07
  • 打赏
  • 举报
回复
没有高手来哦....

顶起!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧