- 博客(10)
- 资源 (102)
- 收藏
- 关注
原创 一对一映射的三种方式以及对lazyload的特别关注
一对一映射几乎涉及了所有可以使用的映射方式:共享主键、外键和关联表。每一种方式都有相对特定的使用场合。而与此同时,one-to-one关系的 lazy loading总是一个让人非常疑惑的问题,下文在介绍每一种一对一映射方案的时候也会对lazy loding的问题做一个说明。一.共享主键方式 这是一对一方案所特有的一种映射方式,这种方式特别适合非空的并且具有一致生命周期(同生同灭)的一对一关系。以User,Address为例,我为 Address的主键再添加一个外键,来参照User,这样
2010-11-19 13:39:00 9539
原创 共享主键、外键、关联表在表达对象关联关系时的微妙语义差别
外键作为一种做用在表上的参照性约束,自然是要求表中所有纪录必须遵守此约束,而如果允许外键列为空,那就等同打开一个扇后门,允许某些数据不必遵守这一约束。这是与外键的初衷是相违背的。如果说:两张表之间的数据存在一种“部分”参照关系,也就是说的如果A表中有部分数据是需要参照B表中的数据,而有的则可以没有参照,那么,使用关联表对两张表之间的数据进行关联可能是更好的选择!这种关系的微妙之外在于,它即表明两表数据之间有“一定的”参照关系,但又不是必须的,它们也可以没有这种参照,显然,这表达的是一种更为宽松的
2010-11-17 23:24:00 6321
原创 关于关系运算的一种简短描述
<br /> 一个查询就是要得到一组满足一定条件的数据项(列)。数据项可能全部来自于一张表,也可能来自多张表,这就需要在from子句中通过表关联把各表拼接在一起。拼接过程中所有数据依然要维持二维表格结构,这样,拼接后的结果集在水平方向上是多表的并排在一起,在垂直方向上则会出现局部重复的数据。select语句负责在垂直方向上筛选关心的数据项(列),where负责在水平方向上过滤数据行。由于在拼接过程中出现了大量“局部”重复的行,group by子句能够帮助我们去除这些重复数据的影响从而聚焦在那些变化
2010-11-16 14:35:00 5061
原创 使用hibernate-tools时出现java.lang.NoSuchMethodError:net.sf.ehcache.config.CacheConfiguration.isTerracottaClustered()错误
<br />使用hibernate-tools时出现java.lang.NoSuchMethodError:net.sf.ehcache.config.CacheConfiguration.isTerracottaClustered()错误,具体异常是:<br />java.lang.NoSuchMethodError: net.sf.ehcache.config.CacheConfiguration.isTerracottaClustered()Z<br /> at net.sf.ehcac
2010-11-16 11:55:00 11979 2
原创 为什么聚集函数不能出现在where子句中
这是一个很有意思的问题,仔细地想一下其实很有道理。我们知道,聚集函数也叫列函数,它们都是基于整列数据进行计算的,而where子句则是对数据行进行过滤的,在筛选过程中依赖“基于已经筛选完毕的数据得出的计算结果”是一种悖论,这是行不通的。更简单地说,因为聚集函数要对全列数据时行计算,
2010-11-15 23:12:00 20582 6
原创 应用服务和领域服务
<br /> 在领域驱动设计中,service有两种:领域服务和应用服务,单纯从它们的定义来看,两者很容易区分,前者是与业务逻辑密切相关的服务,往往处理复杂的业务请求。后者则是面向应用角度的一些支持功能,与业务本身并无太大关联。一些典型的应用服务有:发送电子邮件通知用户,对密码进行加密解密等等。在oobbs中,要在导航栏中显示当前位置的路径(一个像:index->forum1->thread1的路径)也是由一个应用层面的服务负责的。但是正如《领域驱动设计》一书所说的,实际上,区分领域服务和应用服务
2010-11-15 11:16:00 8835 4
原创 Struts2的checkbox标签
html中的checkbox标签有一个特殊的地方,如果一个checkbox未被选中,那么它将不会出现在请求参数中。比如如下的例子:submit(补充说明:对于checkbox,如果没有显式地指明value值,那么它会有一个默认值“on”)当我们同时选中option1和opti
2010-11-04 18:36:00 17051 1
原创 大道至简--关注点分离
<br /> 我想所有软件开发中的方法论发展至今,最为精辟与重要的大概非“关注点分离”莫属了。面对一个复杂的系统,从宏观上进行梳理和划分,把职责与作用相近的归结在一起,不相近地尽量地隔离,从而将系统的复杂性逐一分解,形成一个一个职责单一,可以相对独立地关注和研究的聚集。这也正是架构要做的头等大事。
2010-11-03 23:00:00 6460 1
原创 Collecting Parameter模式
<br /> 作为一种不太常被提及的设计模式,Collecting Parameter并太为人所熟知。我对这一模式的认识最初来自《JUnit In Action》一书2.4节对TestResult的介绍。JUnit中的TestResult就是Collecting Parameter模式的应用。简单来讲,当我们需要收集一连串多个方法的返回值时,我们需要在这些方法中传入一个对象,用以收集返回的结果。目前在oobbs系统的DomainEvent机制的设计中我又遇到了这一模式的一个典型应用场景。当一个Domain
2010-11-03 13:51:00 5400
原创 不要主动地去对立对象模型和关系模型,而是要使之融洽相处,物尽其用
<br />使用对象模型求解复杂业务问题,使用关系运算高效地读取和操作数据,我们不应该把两种编程范式看作是水火不容的对立者。即使在一个构建了完美领域模型系统里,通过一条简单的SQL直接得到某个表格需要展示的一组数据也不是什么大逆不道事情吧?总之物尽其用,各扬其长吧,这才是聪明人的做法。
2010-11-01 19:05:00 4493
Big_Data_SMACK.pdf
2016-10-14
The.Art.of.Multiprocessor.Programming.Revised.Reprint
2014-02-06
win7下硬盘安装Linux(Fedora17,CentOS 6.4,Ubuntu 12.10,LinuxMint 13 64-bit)
2013-08-16
Packtpub.Hadoop.MapReduce.Cookbook.Jan.2013
2013-03-04
OpenSSH for Windows
2013-02-06
Professional Website Performance.pdf
2013-02-04
Red.Gate.SQL.Toolbelt.v1.8.2.238.Incl.Keygen
2013-01-14
Araxis.Merge.Professional.v2012.4260.x64-BEAN
2012-12-27
Apress.Pro.SQL.Server.2012.Practices.Nov.2012
2012-12-24
Professional JavaScript for Web Developers, 3rd Edition 附书中代码
2012-09-19
Head.First.HTML.and.CSS.2nd.Edition.Aug.2012
2012-09-11
Packtpub.Spring.Security.3.May.2010
2012-09-10
Pro Apache Log4j Second Edition
2012-09-06
PowerDesigner16.1 crack keygen 破解文件
2012-06-21
SecureCRT.v6.7.3.292(含注册码和破解补丁),
2012-06-13
SecureCRT.v6.7.3.292.x64(含注册码和破解补丁)
2012-06-13
Apache Solr 3.1 Cookbook
2012-04-24
Lucene in Action 2nd Edition
2012-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人