文章列表
 
您正在查看 "Hibernate" 分类下的文章

2008年11月19日 星期三 20:10

这几天,正在使用Hibernate做持久层实现一个管理系统,遇到了不少问题。由于数据库的设计就存在很多问题(PS:数据库不是我设计的),只能在这个基础上一点点实现。哎,真是感觉到了一个并非良好设计的数据库,会给后期开发人员带来多少的痛苦啊...

对付使用这个数据库的设计吧,异常:

org.hibernate.ObjectNotFoundException: No row with the given identifier exists

异常具体详细信息如下所示:

Hibernate: select operator0_.ID as ID1_1_, operator0_.NAME as NAME1_1_, operator0_.TYPE as TY

 
2008年11月06日 星期四 16:28

今天在使用Hibernate的时候,碰到这样一个异常:

Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

详细异常信息如下:

Exception in thread "main" org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:61)
at org.hibernate.jdbc.Expectations$BasicExpectatio

 
2008年05月28日 星期三 22:29

Hibernate 3.2实现了对JPA的支持,使用注解简化了以往版本XML映射实体。

通过一个实现一对多单向关联的例子来学习这一新特性。

开发环境

操作系统:Windows XP SP2

开发IDE:Eclipse 3.3.2 + MyEclipse 6.0

数据库系统:SQL Server 2000

Hibernate版本:Hibernate 3.2

工程结构

工程结果如图所示:

 
2008年04月09日 星期三 21:33

在文章 Hibernate+Struts分页的实现 中的分页实现是对于数据量较大的情况的设计的,即,每次需要显示的时候才从数据库中检索,在此基础上继续优化。

因为在文章 Hibernate+Struts分页的实现 中实现,没有将分页逻辑同实际的业务逻辑分离,这使得分页逻辑组件不能够被重用。

今天实现的就是从文章

 
2008年04月01日 星期二 19:20

另一种Hibernate映射继承关系:

一个实体类不是Abstract的,它有自己的子类。其中这个基类具有了各个子类的共同特征的抽象,而各个子类都有自己独有的特征。

让基类对应数据库中的一张表,而各个子类也有对应的数据库表。

这样,在各个子类对应的表中,没有无用的字段,它们的各个字段都可以根据需要填充上对应的值。不像文章 Hibernate映射继承关系(上) 中的那种方式(在基类对应的数据库表中,那些没

 
2008年04月01日 星期二 16:46

Hibernate映射继承关系,可以得到三种组合方式。

但并不是每种方式都能在实际应用中得到很好的推广。

这里讲述一种还可以承受的使用Hibernate映射继承关系:

一个实体类不是Abstract的,它有自己的子类。其中这个基类具有了各个子类的共同特征的抽象,而各个子类都有自己独有的特征。

让基类对应数据库中的一张表,而各个子类没有对应数据库表。这样,表的设计必须具有各个子类所包含的所有的属性对应的字段。

这样可想而知,数据库表一定不能保证数据的完整性,在一定程度上增加了存储开销

 
2008年03月28日 星期五 21:37

在文章 Struts分页的实现 中使用的分页思想是:先一次将所有记录查询出来,然后对List中的记录进行分页,这种分页适合数据量较小的应用情况。

对于数据量比较大的应用,应该考虑:每显示一页,执行一次查询操作,减少用户响应的时间。下面根据这种思想实现Hibernate+Struts分页。

而且,重点是把页面实体和分页逻辑分开来实现。

测试用的数据库及其表同文章

 
2008年03月28日 星期五 12:28

准备工作

1、数据库设计

新建数据库hql,设计数据库表,SQL脚本参考如下:

/****** Object: Table [dbo].[course]    Script Date: 2008-3-28 11:47:05 ******/
CREATE TABLE [dbo].[course] (
[cno] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[dno] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[cname] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO

/****** Object: Table [dbo].[dept

 
2008年03月13日 星期四 17:27

以前总是对这个概念感觉模糊:为什么值对象不能作为实体对象呢?

作为实体对象要考虑对象生命周期,它是具有OID标识的,是独立唯一的,而且很复杂。

而值类型对象没有生命周期,本身就是没有生命的,根本不能谈什么持久化,简单多了。

今天做了一个测试,了解它的含义。

准备两张表:

person表结构如图所示:

book

 
2008年03月09日 星期日 18:06

如果应用中,检索的频率相当高,每次都要去检索数据库,代价可想而知。

可以设置Hibernate的二级缓存,减少系统开销,提高应用的效率,减少客户端检索的响应时间。

配置Hibernate的二级缓存,需要配置文件ehcache.xml:

<ehcache>
   <diskStore path="E:\\hibernate\\cache\\second-cache"/>

   <defaultCache
        maxElementsInMemory="10000"
     

 
2008年03月09日 星期日 12:18

终于在自己的摸索和身边高手的指点下,把配置Hibernate数据源的问题搞明白了。

开发测试环境

操作系统    :Windows XP SP2

Java工具包:JDK1.5

数据库平台:SQL Server 2000 SP4

开发 IDE    :Eclipse 3.2 + MyEclipse 5.0

Web服务器:Tomcat 5.5.9

Hibernate :Hibernate 3.0

准备工作

建立测试数据库:

数据库名称为person,表名为person,具体结构非常简单,如图所示:

 
2008年03月05日 星期三 19:43

Hibernate映射一对多单向关联(之二)中,可以检索出一个Student所对应的所有课程,放在一个HashSet中。

如果一个学生的记录被删除了,就应该考虑到它的其他信息也全部删除掉,比如他的全部课程记录。

将Student.hbm.xml中cascade值设置为如下:

cascade="all"

或者

cascade="all-delete-orphan"

cascade="all",既能满足我们save-update的需要,

 
2008年03月05日 星期三 14:31

Hibernate映射一对多单向关联(之一)的基础上,看一下映射一对多单向关联中检索数据的情况。

我们要查询student表中某个学生对应的在sc表中的课程情况,一种方式就是直接将要查询的学生的学号(sno)set到Sc的对象上,直接通过Sc的对象检索sc表查得所需要的记录。

另一种通过配置的一对多关联,使用Student对象获取Sc对象。

测试程序如下:

package org.shirdrn.test;

import java.util.

 
2008年03月05日 星期三 13:45

先使用映射文件映射自然复合主键实现一对多关联。

建表:student表和sc表分别如下所示:

student表:

sc表:

 
2008年03月05日 星期三 10:31

使用one-to-many和many-to-one配置一对一双向关联:

其实,就是把上面的两种综合起来配置:

在Person.hbm.xml中配置:

<many-to-one name="card"
            class="org.shirdrn.entity.Card"
            update="false"
            insert="false"
  

 
   
 
 
文章存档
 
     
 
最新文章评论
  

这个不错,很详细,对于我们初学spring框架的人不错的帮助,感谢楼主分享
 

最近用,学习了~
 

[表情]
 

[表情]
 

对于Ubuntu用户,有一个简单的办法: 将该用户添加到admin用户组,即 usermod -G adm
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu