- 浏览: 13951 次
- 来自: ...
-
最新评论
文章列表
Hibernate 的多对一关联中,一般子表的外键都是关联到主表的主键,如果该外键不是关联到主表的主键,可使用 property-ref 属性,如:
Student 和 Dept 是多对一的关联, Student 表中有 dept_id 字段作为外键,关联到 Dept 表的字段 dept_no ( 非主键 ) , Sudent 和 Dept 实体的配置可按如下:
<many-to-one name="dept" class="Dept" property-ref="dept_no" >
...
可先使用 Projections.rowCount() 来取得总记录数,如下:
Long totalNum = (Long)criteria.setProjection(Projections.rowCount()).uniqueResult();
然后将 Projection 设为空,再进行正常分页。
criteria.setProjection(null);
criteria.setFirstResult(beginIndex);
criteria.setMaxResults(pageSize);
...
DispatcherServlet:前端控制器,也是整个架构的核心,负责处理和分发请求。
HandlerMapping:处理器映射,他主要包含的是控制器的列表,对于特定的请求,根据HandlerMapping的映射关系,可以找到特定的控制器。最简单的便是url到控制器的映射。 HandlerAdapter:对于不同类型的控制器,该类负责把Handler请求处理的结果统一转换成ModelAndView。 ModelAndView:包含数据和视图的信息,一般包含视图名,和这个视图需要用的数据,这里的Model大家不要误会为模型的概念,它只不过同时包含视图信息及这个视图需要显示的相关信 ...
摘录分布式系统的几种通信架构:
1)基于Corba协议
这是比较古老的一种方式,基本在90年代前期使用,之后被EJB技术取代。
2)基于RMI/IIOP协议
采用基于调用的模式,调用过程如下:客户端程序调用服务对象的客户端代理,代理负责打包参数并通过JRMP协议发送到服务端,服务端使用同样协议解析,执行业务逻辑处理,用同样方法返回结果给客户端。
调用过程使用基于java远程消息交换协议JRMP通信(JRMP是专为java远程对象制定的协议),是EJB技术的基础。
RMI是面向对象的编程模型。传输的消息是二进制形式。
...
Hibernate中session是使用最频繁的对象,我们需要对session进行有效管理,即在执行数据库操作前打开session,在执行操作后关闭session。
对session的管理有两种场景:
1) 没有和Spring集成,我们自己管理
我们调用Hib ...
双向一对多,首先还是在“一”方配置one-to-many的set, 但一般都将关联关系维护交给“多”方(inverse="true"),如
xml代码
<set name="cards" inverse="true" cascade="all">
<key column="userId" /> <!-- Card表中指向User表的外键 -->
<one-to-many class="wintys.hibernate.oneto ...
Hibernate一对多有两种,单向和双向。
单向一对多中,一般在“一”方定义one-to-many的set,由“一”方维护关联关系,如
User.hbm.xml:
......
xml代码
<set name="cards" inverse="false" cascade="all">
<key column="userId" not-null="true" /> <!-- Card表中指向User表的关联外键 -->
<o ...
1. outer-join关键字(many-to-one的情况)
outer-join关键字有3个值,分别是true,false,auto,默认是auto。
true: 表示使用外连接抓取关联的内容,这里的意思是当使用load(OrderLineItem.class,"id")时,Hibernate只生成一条SQL语句将OrderLineItem与他的父亲Order全部初始化。
select * from OrderLineItem o left join Order p on o.OrderId=p.OrderId where o.OrderLineItem_Id=?
...
1. TUser与TOrder 一对多关系
xml代码
<class name="TUser" table="t_user" catalog="test">
<id name="id" type="java.lang.Long">
<column name="id" />
<generator class="native" />
...
关联查询可分为两种:
A) 实体间有定义关联关系的(一对多,多对一等)
对已定义关联关系的,我们可以使用createAlias()来创建属性的别名,然后引用别名进行条件查询,如:
Criteria criteria = session.createCriteria(Parent.class);
criteria.createAlias("children", "c").add(Expression.eq( "c.name" , childName));
这样进行查询时就可得到关联查询后的Parent对象结果集。
要注意的是, ...