论坛首页 入门技术论坛

为什么用Hibernate时一定要做关联映射?

浏览 15218 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-05-25  
drinkjava 写道

引用
不映射成类怎么利用oo思想啊,hibernate可以对一个对象进行操作,jdbc不行啊,主要是可以利用oo思想


你根本就没看明白这个贴子的观点,我的意思是完全不用OO思想,只是将hibernate当作一个比jdbc顺手点的工具而已,我用关系数据库好多年了,也开发过上百个表的应用,不用OO不也照样做挺好?JDBC不行,可也没人说不准用JDBC吧?


。。那我啥也不想说了,你用jdbc和hibernate有什么关系了还?你不用配映射类也,直接配置一个JdbcTemplate属性就行了。还有这和你做数据库多少年有啥关系。

0 请登录后投票
   发表时间:2007-05-25  
过儿oO 写道

。。那我啥也不想说了,你用jdbc和hibernate有什么关系了还?你不用配映射类也,直接配置一个JdbcTemplate属性就行了。还有这和你做数据库多少年有啥关系。

怎么没关系呢?JDBC是用E-R的概念来操作数据库,贴子中的这种用法也是用E-R的概念来操作数据库,只不过工具毕竟换成了Hibernate,而不是其它的东东;不用JdbcTemplate是因为它没有缓存,要手写SQL,不能用对象名+点号的方式来访问属性,不能跨数据库。说做数据库多少年是想说明不用OO只用ER也能很好地开发数据库。
0 请登录后投票
   发表时间:2007-05-26  
过儿oO 写道

。。那我啥也不想说了,你用jdbc和hibernate有什么关系了还?你不用配映射类也,直接配置一个JdbcTemplate属性就行了。还有这和你做数据库多少年有啥关系。

不用Hibernate就一下将人推到jdbc,这是一种走极端的做法,就好象误了飞机就叫人去骑驴车,而不是想一想有没有其它的办法。
顺便题一下,今天花了一天时间,编好了一个工具,按上文思路,从MySql数据库直接生成所有hbm.xml、PO、VO类,因为不考虑映射,键也只用业务单主键或uuid.dex,从此无需手工微调xml,真正一键搞定了!
0 请登录后投票
   发表时间:2007-05-28  
  没有其它人回答吗?本来是发在Hibernate栏的,后来25个投票评为新手贴,转到这里来了,可见至少有25个高级会员认为这是个简单问题,真希望这些资深人士在投票的时候给个简单的回答,老实说,我才不关心什么新手贴精华贴之类的,只不过想要一个答案而已。
  另:原来的标题不妥,改了一下,加了一个“用”字,因为这个贴子讨论的是Hibernate的另类用法,而不是正常使用Hibernate的用法。
0 请登录后投票
   发表时间:2007-05-28  
drinkjava 写道
  没有其它人回答吗?本来是发在Hibernate栏的,后来25个投票评为新手贴,转到这里来了,可见至少有25个高级会员认为这是个简单问题,真希望这些资深人士在投票的时候给个简单的回答,老实说,我才不关心什么新手贴精华贴之类的,只不过想要一个答案而已。
  另:原来的标题不妥,改了一下,加了一个“用”字,因为这个贴子讨论的是Hibernate的另类用法,而不是正常使用Hibernate的用法。


它那个好象是自动的,好象是你帖子不够还是啥的,不是投票的,我的帖子也是被打为新手贴,然后一共就一个人回了,还是说的一些玩笑没有回答问题,后来我自己顶了一个,现在那个加上我发的一共3帖。不知道怎么回事,我现在不敢上上面去发,一发就扣10分封一天,受不了。
0 请登录后投票
   发表时间:2007-05-28  
谢谢你的回复,不是的,在收件箱里有个消息是:
引用
标题:您的帖子被JavaEye会员集体投票评为新手贴
正文:
您的帖子:为什么Hibernate一定要做关联映射? 被JavaEye用户民主投票评为新手贴,减积分10分。

至于扣分什么的倒没什么,大不了过两天再上,入乡随俗吗。
0 请登录后投票
   发表时间:2007-05-28  
drinkjava 写道
谢谢你的回复,不是的,在收件箱里有个消息是:
引用
标题:您的帖子被JavaEye会员集体投票评为新手贴
正文:
您的帖子:为什么Hibernate一定要做关联映射? 被JavaEye用户民主投票评为新手贴,减积分10分。

至于扣分什么的倒没什么,大不了过两天再上,入乡随俗吗。


是的,我的信箱里和你那个说的一模一样的,扣分到是没啥,关键一整封了,说不了话,我现在分是发啥也不涨我也没说啥
0 请登录后投票
   发表时间:2007-06-01  
又想到一点,开发遗留数据库又想用Hibernate,只能用这种方法。
0 请登录后投票
   发表时间:2007-07-08  
我就觉得只要能解决问题,怎么用都没有关系,Hibernate的初衷是为了方便程序员,只要这样做是有效率(对于你的团队或者你自己是有效率的),那为什么不能这样用呢?我们的最终目标是什么?是解决问题!
0 请登录后投票
   发表时间:2007-07-12  
再一个好处:PO转VO简单了,一个调用搞定! 那种一个属性套一个子属性,子属性下再套子属性的恶梦再不复存在了,可以放心地甩开OpenSessionInView了。
	public static List createListVO(List list) {
		try {
			List outputList = new ArrayList();
			for (Iterator i = list.iterator(); i.hasNext();) {
				Object obj = i.next();

				if (obj.getClass().isArray()) {
					Object[] o = (Object[]) obj;
					Object[] newo = new Object[o.length];
					for (int j = 0; j < o.length; j++) {
						newo[j] = (Class.forName(o[j].getClass().getName().replaceFirst(".po.", ".vo.") + "VO")).newInstance();
						BeanUtils.copyProperties(newo[j], o[j]);
					}
					outputList.add(newo);
				} else {
					Object newo = (Class.forName(obj.getClass().getName().replaceFirst(".po.", ".vo.") + "VO")).newInstance();
					BeanUtils.copyProperties(newo, obj);
					outputList.add(newo);
				}
			}
			return outputList;
		} catch (Exception ex) {
			log.error("ClassNotFoundException: ", ex);
			return null;
		}
	}
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics