`
liuhaibo_ljf
  • 浏览: 30447 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate 浅谈之对象-关系映射文件

 
阅读更多

 

 

前言:对于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属性。

 

0
0
分享到:
评论

相关推荐

    浅谈Spring+Hibernate整合(共16页).doc

    而 Hibernate 是一个对象关系映射(Object-Relational Mapping,ORM)框架,简化了数据库操作,将 Java 对象和数据库记录之间的映射关系自动化处理。 在 Spring 中整合 Hibernate,主要是为了利用 Spring 提供的...

    浅谈基于Struts和Hibernate的J2EE应用

    Hibernate通过ORM(Object-Relational Mapping)技术,将Java对象与数据库表映射,使得开发者可以使用面向对象的方式来操作数据库,而无需关心SQL语句的编写。它支持多种数据库,如MySQL、Oracle等,且具备事务管理...

    浅谈SSH学习要点

    接下来是Hibernate,它是一个对象关系映射(ORM)框架。基础使用包括理解ORM的概念,如何创建和使用POJO(Plain Old Java Object)类,以及SessionFactory的创建和管理。Hibernate还提供了标准的持久层访问步骤,...

    浅谈java!

    - **ORM映射**:使用Hibernate框架进行对象关系映射。 - **依赖注入**:掌握Spring框架的DI与AOP技术。 - **Web服务**:了解SOAP与RESTful服务的实现方法。 - **Ajax与XML**:学习异步请求处理与XML数据交换技术。 ...

    浅谈SpringMVC+Spring3+Hibernate4开发环境搭建

    Hibernate通过实体类和映射文件将数据库表和Java对象关联起来,提供了透明的数据持久化服务。 搭建这个开发环境时,我们需要完成以下步骤: 1. **配置Web.xml**:这是每个Java Web应用的核心配置文件,用于设置...

    浅谈Action+Service +Dao 功能

    浅谈Action+Service+Dao功能 1. Action、Service、DAO简介 Action是管理业务调度和管理跳转的,Service是管理具体的功能的,DAO只完成增删改查。总结这三者,Action像是服务员,Service是厨师,DAO是厨房的小工。...

    浅谈“三层结构”原理与用意

    "CodePackage"中的数据库连接字符串、SQL脚本或ORM(对象关系映射)框架如Entity Framework、Hibernate等,都可能属于这一层。 **三层架构的优点** 1. **模块化**:三层架构将系统分解为独立的组件,便于开发、测试...

    浅谈Java三大框架与应用

    接下来是Hibernate,这是一个流行的ORM(对象关系映射)框架。Hibernate消除了Java对象和数据库表之间的转换难题,允许开发者以面向对象的方式来操作数据库。它提供了强大的查询语言HQL(Hibernate Query Language)...

    浅谈mybatis如何半自动化解耦(推荐)

    Mybatis的半自动化解耦体现在它将数据访问层与业务逻辑层分离,通过XML映射文件实现了SQL语句的定义和执行,提供了高度定制化的查询能力。这种设计让开发者在保持灵活性的同时,降低了系统的耦合度,提高了代码的可...

Global site tag (gtag.js) - Google Analytics