hibernate2.0疑问

d4fan 2005-11-18 09:23:33
...
<hibernate-mapping>
<class name="JobEntry"
......
>
......
<property
name="binJobOrder"
type="LongRawType"
update="true"
insert="true"
column="job_ord_inf"
/>
</class>
</hibernate-mapping>

class JobEntry中没有binJobOrder这个属性,但是有jobOrder,这样能关联的上吗?还是说hibernate中有这种固定的用法?
其中LongRawType是继承了net.sf.hibernate.UserType的一个自定义的类型
...全文
83 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzpqli 2005-11-21
  • 打赏
  • 举报
回复
类JobEntry可以没有binJobOrder属性,只要有相应的get和set方法就行了
d4fan 2005-11-20
  • 打赏
  • 举报
回复
刚发完贴就明白了,其实Mappings只是临时使用的,因为createMappings时创建的Mapping实例的成员变量都初始化为Configuration的成员变量的引用,也就是说对Mapping成员变量的操作就是对Configuration成员变量的操作,所以Mapping只在初始化配置文件时使用了。

不过上面1楼的问题还是不明白,请大侠指点
d4fan 2005-11-20
  • 打赏
  • 举报
回复
有没有研读过hibernate2.0源码的兄弟,给我解答一下

hibernate在开始的时候会读取配置文件hibernate.cfg.xml,然后会对配置文件中的<mapping resource="XXXX.xml"/>中的XXX.xml进行解析。解析是通过函数add(org.dom4j.Document doc)来完成的,这个函数只做一件事,就是调用Binder.bindRoot( doc, createMappings() ),其中createMappings()函数返回一个Mappings的类型。

bindRoot的声明如下:
public static void bindRoot(Document doc, Mappings model) throws MappingException

这个地方让我很奇怪,因为hibernate会将从“XXX.xml”中读出来的类信息全部存在上面这个“model”里面,但是createMappings()返回的Mappings没有保存啊,bindRoot函数运行完成后,所有存在“model”中的信息岂不全部丢失了。
而且还有一个地方也很奇怪,在hibernate进行持久的话的时候我觉得应该会用到这些信息啊,我搜索了所有的代码,只有在配置控制文件“hibernate.cfg.xml”的时候才用到过Mappings这个类,给我感觉好像是说从配置读出来的信息都没没有用的。

我只看了解析配置文件这个类Configuration.java,及相关的Binder.java,进行持久化操作的类的代码还没看,但是看完这些确实让我很糊涂,有没有大侠能给解释一下。
yongkyoko 2005-11-19
  • 打赏
  • 举报
回复
学习————————————————————————————

58,446

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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