对于不使用对于不使用工具而手写配置文件,我持反对意见,当然,学习的时候还是手写的好。我们正在做的一个项目就是利用xdoclet自动生成所有配置文件,很方便,尤其是同步,更改类的时候取改配置是很麻烦的:)。进一步,我想应该充分利用ide的威力,提高编程的效率和开发质量。例如cmp这么负责的配置就更应该利用ide了。
前面见你说到不使用xdoclet,太可惜了。这是一个好东东,配合ant使用很舒服,学习xdoclet的曲线比学习hibernate更低。我建议所有使用hibernate开发项目的都应该使用xdoclet(前提是采用top-down的开发方式,现有bean,后有数据库)。我们用它几乎生成所有的xml配置文件。
我也不用xdoclet,手写也不是很麻烦,我一般是拷一个以前写好的mapping文件,在这基础上拷贝,粘贴,修改。

hibernate的其他工具也不怎么用,唯一用的就是让它生成ddl,然后再手工改一改。

如果带领项目组做项目,我会用xdoclet,自动化工具有利于项目管理。不过xdoclet并不能生成所有你想要的hbm配置。所以一旦碰到xdoclet生成不了,但是我又必须用的配置选项,那就异常痛苦,每运行一次ant,我都要去把hbm的配置修改一次。

而如果不用xdoclet,只有当PO的属性修改的时候,我才需要相应的修改hbm,而这样的情况是很少发生的。

哈哈!!!


手工主要是会出现同步的问题,而且自动可以减少手误的情况,不对的话连配置都生成不了。
我就发现cascade="all-delete-orphan"不能生成,但是修改xdoclet的配置就解决了,可能因为没有用到太多的hibernate特性,还没有发现其他不能描述的地方,需要手工改配置文件的,如果要手工该配置文件,则自动没有一点意义了。
我们的struts的配置也是用xdoclet生成,所以我们从不担心struts-config太大不好管理的问题,我们也没有专人管这个文件:)。
我是先弄了JDO然后再弄HIBERNATE的,给我的感觉是HIBERNATE的功能强
大很多,完善很多,但是配置起来还是比较麻纺,但是JDO的自动建表功能,还是比较强大,移植比较好,对于用户了来讲只需要提供一个数据库
就行了,配上相应的驱动程序就可以用了。当然培植*。JDO文件和配
*。HBM。XML一样麻纺,为此我还写了自动生成*。JDO文件的工具,但是还
是得手工改一些东西,比如字段的长度啊什么的。
谁说Hibernate没有自动建表功能?好好去看看ExportSchema
谁说hbm要写字段长度?根本就不用写!!! 甚至连字段属性都不用写,Hibernate会根据PO的属性的类型自动判断。
对于第三种架构
3) Session Bean <-> DAO <-> Hibernate <-> DB
当面临复杂的数据库操作的时候,例如变参查询,多表查询时,dao该怎么处理?不会对sessionbean开放sql接口吧。
原来xdoclet可以解决struts配置文件过大的问题?我要去看看xdoclet了。
To Robbin
TSS 是什么地方,麻烦您告诉我TSS的网址.
谢谢。
www.theserverside.com
whose main focus is java technology on server side
说实在的EJB确实是瞒热门的一项技术,但真正用的是少之又少。
大家想想为什么?

我觉得Hibernate的性能比CMP好,入门比Hibernate比CMP容易,也比较易用。响应速度更快,耗费的时间更短。
如果不是非得使用EJB的情况下,强烈建议采用Hibernate
以上是我的个人见解罢了。
我们已采用JSP+Hibernate+Struts成功的开发了两套系统(中型)。

对于一个不了解数据库,不熟悉sql的人来说,了解hibernate的配置文件还是有难度的.也许有人会说你这是吹毛求疵,我并不是要诋毁hibernate, 而是说如果它更简单, 那会更好。
有一个假设, 有文件如下
<公司>
<名称>远大公司
<员工>
<姓名>A
<--*-->B

<部门>
<部门名称>M
<部门地址>M


<供应商>



假设hibernate能从中自动分析关系, 能从中解析出对象并完成在数据库的存储,关系则留给hibernate自己来维护,数据库只存储数据, 因为这个文件还有保存对象关系的作用, 每次hibernate启动时都加载这个文件,识别关系, 提供服务, 当被使用时hibernate能给程序员自动生成对象代码, 这样hibernate只需要用一种如上的方式去分析,去建模。不知道这是不是瞎想
>>假设hibernate能从中自动分析关系, 能从中解析出对象并完成在数据库的存储

如果你想让程序能够对xml文件自动分析关系的话,你的xml的语法会定义的很复杂,最后的结果就是你的xml语法会比现在的hbm还要复杂和难写的多。

再说你这样把数据都定义成为xml格式的表示,效率实在太低,不切实际。

To robbin:
呵呵,比较佩服,能够向Benq叫板。不过Benq会不理你的,他太忙了,并且他有时候不愿认错。唉,成了名人可能就多少有点....
呵呵,Benq大哥,玩笑玩笑
当然,技术上也不得不服:)