![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hibernate
linweihan1984
这个作者很懒,什么都没留下…
展开
-
多对多双项关联
数据库中仍然是利用一个中间表持久化类中,都各自包含对方的集合 Set在映射的文件中都加如Set 的标签,而且都要用到many-to-many然后必须在其中的一方加上inverse=" true"表明有对方来维护这个中间表.如果都不加是说明双方来维护,这样就会出现问题.会报错,说明中间表插入的值是重复的.如果都设置为true说明都让对方来维护,但是其实就是都不维护了.那么中间表就不能插...2007-12-02 16:39:23 · 100 阅读 · 0 评论 -
hibernate值类型集合映射之Map
java 代码 public class User implements java.io.Serializable { // Fields private long id; private String name; private Map ...2007-12-01 17:02:40 · 152 阅读 · 0 评论 -
hibernate值类型集合映射之List
java 代码 public class User implements java.io.Serializable { // Fields private long id; private String name; private List...2007-12-01 16:43:39 · 101 阅读 · 0 评论 -
值类型映射---Set(2)
这里自定义Email类,set里面放的是 email 类,非常类似组成关系.在email里面要重写equal和hashcode方法java 代码 public class User implements java.io.Serializable { // Fields privat...2007-12-01 13:43:50 · 121 阅读 · 0 评论 -
值类型映射---Set(1)
这里介绍2种不同的域模型的设计,一种是Set里面装String类型,一种是Set里面装的是List类型java 代码 public class User implements java.io.Serializable { // Fields private long id; ...2007-12-01 13:20:05 · 107 阅读 · 0 评论 -
事务的作用
事务的作用是为了防止修改数据库,如果只是查询那么就没必要修改数据,如果进行增删改,那么就需要对进行事务的处理.因为增删改会改变数据库的.2007-12-01 12:41:33 · 532 阅读 · 0 评论 -
hibernate中用于分页的方法.
java 代码 public void testSQL3(){ Session session = factory.openSession(); String hql = "from User"; Query query = session.createQuery(hql); query....2007-12-01 00:14:17 · 212 阅读 · 0 评论 -
hiernate3中添加了<sql-insert><sql-update><sql-delete>
java 代码 public void testSQL2(){ Session session = factory.openSession(); User user = new User(); user.setName("linlinlin"); user.setAge(444); ...2007-11-30 23:54:28 · 94 阅读 · 0 评论 -
hibernate中使用sql
java 代码 /* * hibernate中使用 sql语句 */ public void TestSQL(){ String sql = "select * from user"; Session session = factory.openSes...2007-11-30 23:25:06 · 276 阅读 · 0 评论 -
hql写到配置文件当中举例
xml 代码 <hibernate-mapping> <class name="org.tie.User" table="user" catalog="tie"> <id name="id" type="long"> &l2007-11-30 22:22:05 · 215 阅读 · 0 评论 -
[转]HQL基本的举例
java 代码 /* * 简单的查询一个表,返回List */ public void testHQL1(){ Session session = factory.openSession(); String hql = "from User"; ...2007-11-30 22:15:56 · 119 阅读 · 0 评论 -
HQL的基础
1.CRUD分别是: save() ,load() .get(). update(), saveorupdate(). delete2. 还有是通过query接口2007-11-30 20:46:50 · 89 阅读 · 0 评论 -
[转]hibernate中的 bag--解释的太好了.
Bag是集合,与Set不同的是,Bag允许重复的元素,在Java的标准API中并没有提供Bag容器,Hibernate提供自己的Bag实现,允许您将List映射为Bag。您可以如下定义User类别,其中的List成员将被用作Bag来使用,而不管物件在List容器中的顺序: User.java package onlyfun.caterpillar;import java.u...2007-12-01 17:25:51 · 387 阅读 · 0 评论 -
[转]主键自动生成办法
1:uuid.hex: 采用128位的算法来生成一个32位字符串。最通用的一种方式。适用于所有数据库 。在*.hbm.xml中按如下设置。 xml 代码 ...2007-12-01 18:11:57 · 533 阅读 · 0 评论 -
[转]hibernate延迟加载
hibernate 延迟加载问题探讨2007-09-05 14:12 hibernate 延迟加载问题探讨 ...2007-12-01 18:22:43 · 80 阅读 · 0 评论 -
多对多单项关联
1.多对多单项关联在数据库中多对多的关系,表之间设置一个中间表在持久化类中,比如 学生和课程.在学生一方设置Set. 课程一方不用修改映射文件中学生一方要加入Set标签而且用many-to-many 同时建议加上属性cascade="save-update"而课程的一方不用改变....2007-12-02 16:02:53 · 130 阅读 · 0 评论 -
一对一关联
一对一的关联分为外键关联和主键关联外键关联:在关系模型的表中,辅表有一个额外的字段和主表相关联.比如:card和user, card 有字段id , cardno , uid这里uid和user 中id相关联.uid域模型的设计中是" 都要包含对方的属性,是你中有我,我中有你"配置文件中是辅表的一方card是用many - to -one然后用unique...2007-12-02 14:13:46 · 142 阅读 · 0 评论 -
双向的多对一或者双向的一对多
一对多或者多对一都是从一方来看,双向是从两个方向来看这个时候持久化类的一放要有多方的属性,多方要包含一方的属性.在映射的文件当中也是.两边都要配置,以便是one-to-many 另一边是many-to-one在测试方法里,可以从一方看的方式来查询,更(一对多多对一的差不多)可以在映射文件里配置inverse="true"来使控制权转到某一方上面,这样可以随便怎么查,但是最好打出 sq...2007-12-02 00:38:41 · 385 阅读 · 0 评论 -
一对多的另一个问题
如果email 的一方设置uid 不能为空的话回报错,所以需要设置为可以为空.Hibernate: insert into tie.user (name) values (?)Hibernate: insert into tie.email (email) values (?)Hibernate: insert into tie.email (email) values (?)Hibern...2007-12-02 00:19:01 · 104 阅读 · 0 评论 -
做一对多遇到的几个问题(单向)
java 代码 public class User implements java.io.Serializable { // Fields private long id; private String name; private Set ...2007-12-02 00:14:02 · 120 阅读 · 0 评论 -
多对一举例(单项的,从一个方向看)
java 代码 public class User implements java.io.Serializable { // Fields private long id; private String name; 多方拥有一方的属性Email将User作...2007-12-01 23:15:49 · 185 阅读 · 0 评论 -
hibernate多对一
处理多对一的时候感觉关系模型多对一和一对多是一样的在域模型的持久化类中多的一方加一个一的一方的属性,一的一方不变化.在多的一方的映射文件当中用<many-to-one>一的一方配置不变这个时候可以通过在映射的文件加入一些参数,这样可以根据不同业务达到查找的要求.比如:cascase是级联, 通过这个参数与它关联的一些对象,当此对象持久化后与之关联的也持久化了。fetch 可...2007-12-01 22:59:51 · 75 阅读 · 0 评论 -
[转]Hibernate中的outer-join(二):fetch
这篇文章挺好的. Hibernate中的o...2007-12-01 22:49:16 · 130 阅读 · 0 评论 -
hibernate中集合排序
set,map可以支持内存排序和数据库排序List什么都不支持bag支持数据库排序.2007-12-01 18:49:08 · 125 阅读 · 0 评论 -
[转] hibernate中给集合排序的方法
<iframe style="MARGIN-TOP: 0px; FLOAT: left" border="0" marginwidth="0" framespacing="0" marginheight="0" src="http://wz.csdn.net/vote.aspx?t=hibernate%u4E2D%u7ED9%u96C6%u5408%u6392%u5E8F%u7682007-12-01 18:47:43 · 139 阅读 · 0 评论 -
[转]集合类型和结果集排序
言归正传,Hibernate中的Collection类型分为有序集和无序集两类。这里所谓的有序和无序,是针对Hibernate数据持久过程中,是否保持数据集合中的记录排列顺序加以区分的。无序集有Set,Bag,Map几种,有序集有List一种。有序集的数据在持久化过程中,会将集合中元素排列的先后顺序同时固化到数据库中,读取时也会返回一个具备同样排列顺序的数据集合。 Hibernate中...2007-12-01 18:39:47 · 129 阅读 · 0 评论 -
QBC学习举例
java 代码 public void testQBC() { // 方法 说明 // Restrictions.eq = // Restrictions.allEq 利用Map来进行多个等于的限制 // ...2007-11-30 20:36:58 · 145 阅读 · 0 评论 -
[转]QBC 之 DetchedCriteria
原理DetchedCriteria 是由于这个原因才加入啊DetchedCriteria Criteria與Session綁定,其生命週期跟隨著Session結束而結束,使用Criteria時進行查詢時,每次都要於執行時期動態建立物件,並加入各種查詢條件,隨著Session的回收,Criteria也跟著回收。為了能夠重複使用Criteria物件,在Hibernate 3中新增了Detc...2007-11-30 20:18:06 · 92 阅读 · 0 评论 -
[转]Hibernate中Session的缓存及对象的状态
发布时间:2007.08.14 06:06 来源:赛迪网 作者:dxaw ...2007-11-29 17:09:36 · 78 阅读 · 0 评论 -
[转]hibernate中get()和load()比较,没看咋明白
Hibernate加载数据时get和load方法的区别,让我们先看一下方法原型吧:1.get方法 /** * Return the persistent instance of the given entity class with the given identifier, * or null if there is no such persistent instance. (I...2007-11-29 16:03:42 · 55 阅读 · 0 评论 -
type属性
type属性:由于java的类型与sql类型并不是一一对应的,所以hibernate提供了自己的映射类型,作为java类型和sql类型的桥梁。这里type属性可以指定为Hibernate映射类型,也可以指定为一个java类的名字。 ...2007-11-29 01:02:00 · 723 阅读 · 0 评论 -
generator属性
<id>元素中的<generator>用来为该持久化类的实例生成唯一的标识,hibernate提供了很多内置的实现。 Increment:由hibernate自动递增生成标识符,用于为long, short或者 int类型生成唯一标识。 identity :由底层数据库生成标识符(自动增长),返回的标识符是 long, ...2007-11-29 01:01:25 · 117 阅读 · 0 评论 -
映射文件*.hbm.xml
<p:colorscheme colors="#ffffff,#666699,#c0c0c0,#000066,#49cacd,#467ce8,#000066,#878fa5"></p:colorscheme> 映射文件中主要包括三个部分:持久化类名与数据库表名的映射,id属性与主键的映射,持久化类属性与表中字段的映射。...2007-11-29 00:58:38 · 88 阅读 · 0 评论 -
session清理缓存的时间点
1)程序中调用net.sf.hibernate.Transaction的commit()方法的 时候 2)程序中调用session的find()或iterate()时 3)程序中显示调用session的flush()方法时2007-11-29 00:36:26 · 567 阅读 · 0 评论 -
Hibernate中session的使用.
在Hibernate中session主要是用来操作数据库 Hibernate在操作数据库前需要得到Session的实例,这个类似于jdbc中的Connection。 获得Session的方法如下: Session session = sessionFactory.openSession(); 通过Session对象可以对数据库进行增删改查的操作,对应的方法分别为:save(),dele...2007-11-29 00:33:32 · 121 阅读 · 0 评论 -
hibernate中java对象的三中状态
1)临时状态 New,delete() 不在session的缓存中,数据库中无对应的数据。 2)持久化状态 Save() 临时->持久 load(),get() 返回持久 update(),saveOrUpdate(),lock() 游离->持久 在session的缓存中,数据库中有对应的数据。 3)游离状态 Clear(),Clos...2007-11-29 00:32:05 · 92 阅读 · 0 评论 -
Hibernate中数据类型的对应
<p:colorscheme colors="#ffffff,#666699,#c0c0c0,#000066,#49cacd,#467ce8,#000066,#878fa5"></p:colorscheme> Java类型 ...2007-11-29 00:30:20 · 599 阅读 · 0 评论 -
一个Hibernate的基本操作说明
java 代码 public class UserDAOHibernateImpl implements UserDAO { SessionFactory factory = null; UserDAOHibernateImpl() { factory = new Configurati...2007-11-28 22:51:37 · 65 阅读 · 0 评论 -
开始Hibernate操作的之前的几步
1.通过Configuration 来创建sessionFactory,这步的区别在于用什么方式来读取外部的配置文件或者属性文件.(可参考本blog的文章构建SessionFactory)2.通过sessionFactory来创建session3通过session来操作数据库(比如开启一个事务)...2007-11-28 22:40:19 · 74 阅读 · 0 评论 -
[转]hiberante中使用复合主键
hiberante中使用复合主键 对于新系统的设计开发而言,我们应尽量避免在库表中引入与业务逻辑相关的主键关系。将业务逻辑主键引入库表,以后业务逻辑的变化,将很可能对底层数据库结构产生连带影响。复合主键的引入,很大程度上意味着业务逻辑已经侵入到数据存储逻辑之中。因此,应尽量避免。但实际情况中,我们必须面对遗留系统的旧表开发,这时,对现有复合主键的支持就非常必要。hibernate中,通...2007-11-29 17:54:39 · 89 阅读 · 0 评论