NOTE:Hibernate-2010
来源:互联网 发布:淘宝买论文被骗 编辑:程序博客网 时间:2024/04/30 04:00
2009-12-10
为什么“单向一对多”并不推荐使用关联列而使用关联表呢?
JPWH一书中的解释是说:如果在“Many"方设外键关联,必须设为可空,而对于数据库设计来说,这增加了数据的“不确定性”。这个解释让人迷惑,我认为至少还有另外一种合理的解释,即:这种参照方式是与单向一对多表达的逻辑含义是相反的。单向一对多表达应该表达的是one方对many方地参照!从这个意义上来看,引入关联表是更合理的一种方式。
以Signage为例:
Signage到它的适用类型是一种典型的单向一对多关联!在这个关联中,下面的设计会让人觉得“怪异”,因为这样成了让适用类型主动去参照Signage了!
2010-1-15
getCurrentSession()创建的Session与事务绑定是这样完成的:
通过getCurrentSession()获得的这个Session实际上是一个代理,这个代理做了两个重要的工作:
1.强制通过session做任何操作前必须先调用begainTranscation,否则会抛异常。这一点确保了对session的使用总是从一个事物开始的。
2.当事务在commit或rollback后session会自动关闭。这一点确保了session与事物同时终结。
这样,session与transaction起始点至,便是所说的:session-per-transaction
2010-1-18
关于Session绑定的Context,Session和Transaction:
首先要明确:将Session绑定到某种上下文上是把Session实例放到这个上下文上,即保证在这个上下文中可以随时获得这个Session,并且是唯一的一个。而Session和Transaction之间的关系多指Session-Per-Transaction或是session-per-conversation这种Session和Transaction生命周期上的关系。
举一个例子:
Hibernate默认是将Session绑定到一个线程上,这样每个线程都有自己的一个独立的Session.这一点是通过ThreadLocal来实现的。这种模式同时设定了Session和Transaction之间的关系,即:Session-Per-Transcation.一个Session只有一个Transaction,并且与这个Session同生命周期.在没有begain一个Transaction时,session是不可用的。而当transaction关闭时,这个Session也一同关闭了。这是通过为Session生成一个代理类来实现的。
总之要明白:Session与其所属的上下文和Session与其生命周期内Transaction之间是两回事,要区分开来。但两者之间也是有联系。要注意它们之间微妙的关系。
2009-12-10
2009-12-10
2009-12-10
2009-12-10
2009-12-10
2009-12-10
- NOTE:Hibernate-2010
- Hibernate note
- Hibernate Note
- Hibernate Note
- Hibernate note
- Hibernate Note
- NOTE:Hibernate-2009
- my hibernate note
- 【Hibernate Note】Hibernate批量插入和批量更新
- note
- note
- NOTE
- note
- Note
- note
- note
- Note
- note
- 总结C#中得到程序当前工作目录和执行目录的一些方法
- 新加的一个天空的效果.
- 好久没写博客了
- 遍历某目录下的所有文件的方法
- SQL的内连接与外连接
- NOTE:Hibernate-2010
- C#文件操作
- How do I look up for the system locale
- Eclipse插件外联link安装方法~~~~
- VC++中使用内存映射文件处理大文件2(转载)
- 承诺与兑现的反比定律
- C#资源文件的使用方法
- Jasperreport+iReport报表设计(二)通用导出页面
- linux下的计划任务