前言:对于Hibernate映射文件的详解网上多的是,本篇笔记只是对映射文件中一些细节做了一些记录。
1.一个持久化类可以写在一个映射文件中(推荐用法),也可以将多个持久化类写在一个映射文件中。
2.<class>元素的table属性没有设定时,Hibernate会以类名,也就是name属性的值作为与之关联的表名
3.<property>元素的type属性指定了Hibernate的映射类型,我们如何能够确定这个type的值呢?首先确定
这个<property>元素中的name属性的值在类中和表中分别对应的类型是什么,然后查看有关类型对应关系的表格,
找到两种类型同时指向的那个Hibernate类型即可
4.如果数据库中的某个字段不允许为空,而与之对应的<property>元素的没有设置not-null属性为true时,那么,
在持久化这个类时不会先检查这个属性是否为空,而是在执行数据库操作时才会检查,那时将抛出错误。所以最好
将not-null写上
5.<property>元素的access属性用于指定Hibernate访问持久化类的属性的方式。如果access的值为property,则 是通过 get,set方法对类中的属性进行访问的。如果值为field,那么Hibernate将运用java反射机制直接访问类的属 性。例如 Customer类中的name属性没有提供get和set方法,那么就可以将access的值设置为field,使 Hibernate直接访问那么 属性。在就此举个例子:如有以下一个类
private String firstname;
private String lastname;
public String getName(){return firstname+lastname;}
public void setName(String name){}
现在执行Query query=session.createQuery("from Customer as c where c.name='tom'");
如果映射文件中使用的是<property name="name" column="NAME"/>那么不会报错,因为Hibernate访问的事getName和setName方法。
但是如果映射文件中使用的是<property name="name" column="NAME" access=“field"/>那么会报错,因为Hibernate访问的事类中的name属性,但是在属性中并没有name属性。
分享到:
相关推荐
而 Hibernate 是一个对象关系映射(Object-Relational Mapping,ORM)框架,简化了数据库操作,将 Java 对象和数据库记录之间的映射关系自动化处理。 在 Spring 中整合 Hibernate,主要是为了利用 Spring 提供的...
Hibernate通过ORM(Object-Relational Mapping)技术,将Java对象与数据库表映射,使得开发者可以使用面向对象的方式来操作数据库,而无需关心SQL语句的编写。它支持多种数据库,如MySQL、Oracle等,且具备事务管理...
接下来是Hibernate,它是一个对象关系映射(ORM)框架。基础使用包括理解ORM的概念,如何创建和使用POJO(Plain Old Java Object)类,以及SessionFactory的创建和管理。Hibernate还提供了标准的持久层访问步骤,...
- **ORM映射**:使用Hibernate框架进行对象关系映射。 - **依赖注入**:掌握Spring框架的DI与AOP技术。 - **Web服务**:了解SOAP与RESTful服务的实现方法。 - **Ajax与XML**:学习异步请求处理与XML数据交换技术。 ...
Hibernate通过实体类和映射文件将数据库表和Java对象关联起来,提供了透明的数据持久化服务。 搭建这个开发环境时,我们需要完成以下步骤: 1. **配置Web.xml**:这是每个Java Web应用的核心配置文件,用于设置...
浅谈Action+Service+Dao功能 1. Action、Service、DAO简介 Action是管理业务调度和管理跳转的,Service是管理具体的功能的,DAO只完成增删改查。总结这三者,Action像是服务员,Service是厨师,DAO是厨房的小工。...
"CodePackage"中的数据库连接字符串、SQL脚本或ORM(对象关系映射)框架如Entity Framework、Hibernate等,都可能属于这一层。 **三层架构的优点** 1. **模块化**:三层架构将系统分解为独立的组件,便于开发、测试...
接下来是Hibernate,这是一个流行的ORM(对象关系映射)框架。Hibernate消除了Java对象和数据库表之间的转换难题,允许开发者以面向对象的方式来操作数据库。它提供了强大的查询语言HQL(Hibernate Query Language)...
Mybatis的半自动化解耦体现在它将数据访问层与业务逻辑层分离,通过XML映射文件实现了SQL语句的定义和执行,提供了高度定制化的查询能力。这种设计让开发者在保持灵活性的同时,降低了系统的耦合度,提高了代码的可...