- 浏览: 265502 次
- 性别:
- 来自: 成都
最新评论
-
xurunchengof:
[url][url][url][img][img][img][ ...
Spring Security 3多用户登录实现之三 验证过滤器 -
Wind_ZhongGang:
yo8237233 写道你这样的话如果上传文件超过了50000 ...
Spring集成Commons fileupload,文件上传 -
yo8237233:
你这样的话如果上传文件超过了50000000就会报异常
Spring集成Commons fileupload,文件上传 -
zhuzhiguosnail:
Wind_ZhongGang 写道lianglaiyang 写 ...
Spring Security 3多用户登录实现一 -
曾老师:
?????
Spring Security 3用户登录实现之十 用户切换
文章列表
对于一对一关联关系的建立,除了前面讲的方式,即将关联关系由某一方维持外,还可以采用另外一种基于第三张表的关联关系方式,即除去两方各自映射的数据表外,再在数据库中建立第三张表用以维持两者的一对一关联关系。下面来看看这是如何实现的吧。
一。Husband
package com.orm.model;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 10/18/11
* Time: 3:23 PM
*/
public class Husband extends DomainO ...
对于一对一的关联关系,除了为其中一方的数据表增加外键字段外,另一种做法就是将其中一方的标识符字段即作为主键又作为保持两者一对一关联关系的外键字段。下面来看看,这种做法是如何实现的呢?
一。Husband
package com.orm.model;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 10/18/11
* Time: 3:23 PM
*/
public class Husband extends DomainObject {
private Str ...
对于持久化实体间一对一的关联关系来说,在代码层面来看,没有什么太大的问题,如果你想建立一个一对一的单向关联关系,那么只需要在代码中增加一个对对方实体的引用即可,如果你想建立一个一对一的双向关联关系,那么只需要在双方实体中增加对对方实体的引用即可。而从数据表创建的层面上来看,则会根据你对持久化实体的配置文件的不同配置而有所不同。所以对于一对一关联关系,重点在于你在数据表层面上想怎样实现这样的关联关系,主要有两种方式,一种方式是在某一方的表中增加一个外键标识符字段,用来保持双方的一对一关联关系,还有一种方式则是将某一方实体的主键字段同时作为外键字段用来保持两者的一对一关联关系。具体的做法则 ...
Hibernate ORM (Hibernate Object Relationship Mapping), Hibernate处理对象关系映射时,对于对象间关联关系的方式主要有三种,分别是一对一(one-to-one),一对多(one-to-many),多对多(many-to-many),还有一种是多对一(many-to-one),但由于这与一对多只是方向相反,所以在这里认定一对多与多对一的处理方式是一致的;而对于对象间关联关系的方向有两种,一种是单向,另一种则是双向,单向意味着从一方实体能够查找到另一方实体,而反过来,从另一方实体则无法查找一方实体,双向则意味着不论是从一方还是另一 ...
Hibernate中持久化实体间一对多关联关系的composite-element的实现方式。
一。DomainObject
package com.dream.model.couple;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 10/17/11
* Time: 1:05 PM
*/
public class DomainObject {
private Integer id;
private Integer version;
}
...
对于项目中的持久化实体,持久化实体虽然对应着不同的业务对象,拥有不同的属性,在数据库中有不同的数据表与其对应,但是这些不同的持久化实体间却存在着一些共性,如它们都需要id主键标识数据表中的某一条记录,都有可能需要对其进行增删改查的操作,于是,将其共性提取出来进行封装,对于提高代码的可重用性和可读性,显得十分迫切以及必要。
一。DomainObject
package com.dream.model.couple;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 10/17/11
* ...
Hibernate中持久化实体间一对多关联,具体关联关系为多方,单向,连接表关联。
一。Husband
package com.dream.model.couple;
import java.util.Set;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 10/17/11
* Time: 1:06 PM
*/
public class Husband extends DomainObject {
private String name;
...
Hibernate中持久化实体间一对多关联,具体关联关系为多方,单向,连接表关联。
一。Husband
package com.dream.model.couple;
import java.util.Set;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 11-10-15
* Time: 下午3:53
*/
public class Husband {
private Integer id;
private String na ...
Hibernate中对于持久化实体间的关联关系有三种分类,第一个是一对一,第二个是一对多,第三个是多对多,对于多对一的关联关系认定为是一对多的反向,所以从实质上看这两者是一样的。而对于关联关系的设置,通常的做法是,对于一对一,将关联关系可以放在两方中的任何一方,而对于一对多,将关联关系放置在多方,由多方来控制一对多的关联关系,而对于多对多,需要将关联关系同时放置在两方,即由两方共同来控制多对多的关联关系,不过由于这样的做法带来很大的数据冗余,及其它不合理之处,所以这时会开辟第三张表用来映射多对多的关联关系。那么对于一对多或一对一的关联关系,我想将它们的关联关系用第三张表来表示,应该 ...
Hibernate中对于持久化实体间的关联关系有三种分类,第一个是一对一,第二个是一对多,第三个是多对多,对于多对一的关联关系认定为是一对多的反向,所以从实质上看这两者是一样的。而对于关联关系的设置,通常的做法是,对于一对一,将关联关系可以放在两方中的任何一方,而对于一对多,将关联关系放置在多方,由多方来控制一对多的关联关系,而对于多对多,需要将关联关系同时放置在两方,即由两方共同来控制多对多的关联关系,不过由于这样的做法带来很大的数据冗余,及其它不合理之处,所以这时会开辟第三张表用来映射多对多的关联关系。那么对于一对多或一对一的关联关系,我想将它们的关联关系用第三张表来表示,应该如何做呢? ...
Hibernate fetch抓取策略定义了当抓取关联对象时,以怎样的一种方式进行抓取。当抓取策略为join时,抓取关联对象是通过连接表来抓取的,只会发送一条sql语句,即可完成主对象与关联对象的抓取,而当抓取策略为select时,抓取关联对象则会发送两条sql语句来完成关联对象的抓取,一条是抓取主对象,而另一条则是抓取关联对象。抓取策略通常会与延迟加载策略合并使用,这是因为当采用延迟加载策略时,如果抓取策略的设置不适当,会造成想象之外的异常,而当采用非延迟加载策略时,即即时加载策略,通常的建议是采用join即连接抓取策略,这样避免了向数据库发送多条sql语句。需要注意的是,只有当 ...
Hibernate对于持久化实体间的关联关系解除,有两种实现方式,一种是将关联关系实体中彻底删除,而另一种则是将关联关系的外键值设为空,即NULL。两种方式在配置文件中的体现为为cascade设置不同的值。
一。Husband
package com.dream.model.join;
import java.util.Set;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 9/26/11
* Time: 5:46 PM
*/
public class H ...
源代码:
package com.serialize;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 9/26/11
* Time: 11:42 AM
*/
public enum Level {
INFO,
DEBUG,
ERROR
}
package com.serialize;
import java.io.Serializable;
/**
* Created by IntelliJ IDEA.
* User: Z ...
今天看到问答里有人发了一个关于反射的问题,是如何利用反射来获取类的私有构造函数并进行类的实例化的,由此想到Java提供private关键字就是用来控制类的成员变量和方法在外部无法可见,那么使用反射能够获取到类的私有构造函数,成员变量和方法,并对其进行操作,那么这样做是否破坏了程序的封装性呢?
有人说无法实现访问调用私有的构造函数,再次实践证明。
package com.dream.reflection;
/**
* Created by IntelliJ IDEA.
* User: Zhong Gang
* Date: 11-9-24
...
Spring提供了一个接口MessageSource用于获取国际化信息。有这么几个类值得注意,用于在项目中启用国际化信息功能,一个抽象类AbstractMessageSource,继承该抽象类的有四个类,分别为ResourceBundleMessageSource,ReloadableResourceBundleMessageSource,StaticMessageSource,
SpringSecurityMessageSource。各个类的功能相当,只是用处不同,查看Spring的javadoc发现,StaticMessageSource主要用于测试环境,编写测试类,并不用于生产环境, ...