- 浏览: 81622 次
- 性别:
- 来自: 上海
最新评论
-
zhangyou1010:
以前项目里面的功能,我基本都是用java 程序去实现,最近才发 ...
Oracle学习笔记(一) -
addison110:
不争而善胜:孙子兵法有云,不胜在己,胜在彼。其实相对于自然,社 ...
读老子(三) -
doylecnn:
Last-in-first-out也就是先进先出的模式???
Android学习笔记(二)
关于bean中属性作用域的问题。(隐藏 某些属性,同时希望能够通过hibernate抽上来)
有时候,我们不希望能够让某些属性暴露在外面,比方说书中的例子类Category。
public class Category {
private String name;
private Category parenteCategory;
private Set<Category> childCategories = new HashSet<Category>();
private Set<Item> items = new HashSet<Item>();
public void addChildCategory(Category childCategory){
if(childCategory==null){
throw new IllegalArgumentException("Null child category!");
}
if(childCategory.getParenteCategory()!=null){ //如果原父目录不为空,则在原副目录中删去子目录,
childCategory.getParenteCategory()
.getChildCategories()
.remove(childCategory);
}
childCategory.setParenteCategory(this);
this.childCategories.add(childCategory);
}
}
其不希望存放子目录的childCategories直接暴露给外面。就可以用把其get,set方法设为私有,或者删除。书上说可以直接的字段访问进行持久化,这一点我还是看不太明白。估计以后会说吧。
在这里他绝少一个不错的方法,返回只读的set和map。这个方法是Collections中的unmodifiableXXX,很不错的一个方法。
hibernate中的脏检查。
对于在hibernate中,对于某一个对象的属性的改变,是判断它的值,而不是统一性。所以获取方法的时候,返回一个不同的对象比返回由hibernate传递到设置方法的对象来的安全。
比方说下面的方法(返回User类的firstname属性)就比较安全。
public String getFirstname(){
return new String(firstname);
}
这里我的理解是,如果要返回从hibernate抽上来的对象。那么如果这个返回对象改变。那么hibernate可能会自动的进行更新。比方说说这里的firstname。我返回出去之后,那么如果我改变这个值,hibernate也会更新。
但是对于集合,则只是判断其统一性,而不是值的改变。
比如说下面的代码需要尽量的避免。
public void setNames(List namesList){
names=(String[])namesList.toArray();
}
public List getNames(){
return Arrays.asList(names)
}
因为每次都会产生不同的对象,而使得统一性改变。
动态SQL语句生成。(SQL语句不显示所有的数据表的字段)
就是class标签中的dynamic-insert和dynamic-update语句。这个时候生成的sql语句,只会出现需要更新的字段。(估计这东西到时候看看api就能了解个大概。只是会看不懂。)
使查询返回的实体(类)不可变。
class标签中的mutable属性。设置成false
这个属性个人觉得有点比较大的限制。毕竟一旦设置,那么一切也就没了。这个就有点太严谨了一点。
给查询实体命名。(重命名类的实体)
标签是:
<hibernate-mapping>
<import class="auction.model.Auditable" rename="IAuditable"/>
</hibernate-mapping>
以后的HQL查询的时候,直接输入IAuditable就好了。不过这个觉得比较奇怪,因为import标签没有说明给。
实现命名约定
比方说一个类User,而规约约定的是数据库表的前缀是db。那么数据库中对应的表应该是db_user。那么用了这个就可以在配置文件中直接写对应的表为user。
具体的用法是写一个类,继承ImprovedNamingStrategy或者实现NamingStrategy接口。然后调用Configuration中setNamingStrategy方法
这个方法觉得有点鸡肋。唯一的用处就是相同的对象要进入不同的表中的时候用到。但是用这个方法感觉很原始,首先,需要不创建不同的SessionFactory。其次,用继承也能起到差不多的效果,而且继承更加的方便。唯一的用处就是写映射文件的时候,方便一点了吧。
属性访问,衍生属性(计算值),默认属性等
看具体api吧,比较清楚一点。
映射组建
使用的是Component标签来进行。我发现如果要使用到parent子标签时,组件类当中要有一个属性,指向包含它的类。
发表评论
-
不用循环Copy数组的方法
2011-11-17 21:54 1026arraycopy(Object src, int ... -
Java.lang.AbstractStringBuilder源代码笔记
2011-11-17 21:45 34351,子类有StringBuffer和StringBuilder ... -
读String源代码笔记
2011-11-12 22:10 11321,数字可以转换成其他的进制的字符串时,能够使用Inte ... -
Tomcat(三)
2010-03-31 10:47 11479.Context.XML 这个文件主 ... -
oracle学习笔记(十八)
2010-03-30 20:11 919110)谈到分区的作用。我想有点意识的人都会明白。把一 ... -
Tomcat学习笔记(二)
2010-03-24 09:10 13466 . <Manager className=&quo ... -
Oracle学习笔记(十七)
2010-03-21 13:41 1076103). Date,TimeStamp,Interval ... -
Oracle学习笔记(十六)
2010-03-20 19:43 89597.NLS(National Languag ... -
Tomcat学习笔记(一)
2010-03-18 15:50 15471。多个Tomcat实例 To have one ... -
Oracle学习笔记(十五)
2010-03-14 19:12 79896 本来想要继续写索引,但是发觉由于没有一些主观上的认识。写 ... -
Oracle学习笔记(十四)
2010-03-12 23:39 68692.索引。 对于索引。其实我了解的并不是很多。只是单单的知 ... -
Oracle学习笔记(十三)
2010-03-07 20:59 76087.堆组织表 看完了这些介绍之后,我 ... -
Oracle学习笔记(十二)
2010-03-04 22:36 120680。表的类型 1.堆组织表(heap organized ... -
oracle学习笔记(十一)
2010-02-28 18:36 75576. 关于零时表的Undo和Redo。直接写结论吧 ... -
Oracle学习笔记(十)
2010-02-25 22:23 85770 Redo和Undo Redo和Undo从字面 ... -
想在上海地区找份工作
2010-02-24 21:53 72我会的都已经记录在这里。具体要求可以看看我的 ... -
Oracle学习笔记(九)
2010-02-20 22:40 88066,事务。其实在数据库中,事务的作用毋庸置疑。在这 ... -
Oracle学习笔记(八)
2010-02-19 15:57 90162,并发与多版本: 觉得这是数据库永恒的主题。一个数据的高低 ... -
Oracle学习笔记(七)
2010-02-17 18:42 96656 阻塞: 这一段没有看得太明白。但是也不是云里雾 ... -
Oracle学习笔记(六)
2010-02-15 10:09 89452 锁: 其实锁是每个数据库用于处理并发问题的一种 ...
相关推荐
Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...
《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...
hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要
在本篇《Hibernate学习笔记》中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架。Hibernate允许开发者以面向对象的方式处理数据库操作,极大地简化了数据存取的复杂性。以下是一些关键知识点: 1....
这套笔记是我学习Hibernate,进行相关技术点训练时记录下来的,其中包括技术点说明与相关事例,拿出来与大家分享。
【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...
《Hibernate学习笔记——马士兵教程解析》 在Java开发领域,ORM(Object-Relational Mapping)框架的使用已经非常普遍,其中Hibernate作为一款优秀的ORM框架,因其强大的功能和易用性深受开发者喜爱。本文将根据马...
hibernate中一对一,一对多,多对多关系的配置,延迟加载,cascade,inverse hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式
**Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...
《马士兵Hibernate学习笔记》是一份深入浅出的教程,旨在帮助初学者掌握Hibernate这一流行的Java持久化框架。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式来操作数据库,从而减少了传统...
Hibernate是一款强大的Java持久...通过阅读这份“Hibernate API帮助文档”和“Hibernate学习笔记”,你将能够深入理解Hibernate的工作原理,掌握其API的使用,并能在实际项目中有效地利用Hibernate进行数据持久化操作。
### Hibernate 学习笔记知识点概览 #### 一、Hibernate 概述 - **定义**:Hibernate 是一款开源的对象关系映射(ORM)框架,它实现了将 Java 应用程序中的对象模型映射到关系型数据库中的记录。通过 ORM 技术,...
hibernate学习笔记第一天的源码
传智播客 汤阳光 Hibernate 学习笔记,非常详细的hibernate学习资料!
在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...
以上是马士兵Java框架Hibernate学习笔记的主要知识点概览,涵盖了从基础配置到高级特性的一系列内容。对于初学者来说,这是一个很好的起点,可以帮助他们快速掌握Hibernate的核心概念和技术要点。