持久化类的属性及访问方法

一个简单的java持久化类 一个简单的java持久化类,接受ResultSet参数,转化为对象数组 立即下载

-------------------------------------------------------------------

1、持久化类的访问者有两个,一是JAVA应用程序,二是hibernate

 写:Java应用程序通过setter设置持久化对象的属性,hibernate通过getter获取持久化对象的属性并生成相应的SQL语句对表格进行操作。

 读:hibernate通过setter设置持久化对象的属性,Java应用程序通过getter获取持久化对象的属性。

 

2、hibernate访问持久化类属性的策略

Hibernate通过name指定的值访问持久化对象。Hibernate通过name值,反射持久化对象的对方法。比如,name的值为gender。 Hibernate会直接反射持久化对象的getGender和setGender方法。所以我们必须保证持久化对象中有对应的方法。这是因为property有一个access属性,它的默认值为property(推荐)。

如果指定access的值为field,则hibernate直接根据name值反射持久化对象的属性。此时,我们必须保证持久化对象中有对应的属性。

 

3、 在持久化类的方法中加入程序逻辑

如果access的值为property,hibernate直接反射持久化对象的方法。在这个方法中我们就可以加入程序逻辑。老徐举了一个生动的例子,比如Customer类中有firstname和lastname两个属性。但我们只想让hibernate通过getName方法获得一个firstname+lastname的字符串,此时我们就可以在getName方法中将firstname与lastname两个属性值合并为一个中间使用 “.”连接的字符串返回。

 使用hibernate获取数据表中的数据时,hibernate会调用持久化对象的setName方法。我们在这个方法中将传递进来的参数使用“.”分隔,然后分别设置到firestname和lastname属性中。

--------------------------------------------------------------------

 

因为公司里的项目使用注解对hibernate 的实体进行映射,这里,映射存在两种方式,一种是标注在field上,一种是标注在getter方法上,究竟这两种方法有什么不同呢,这个问题困扰了我很久。今天看到上面那解释,写终于解开了谜团。

就像第一点所说的那样,pojo有两个访问者,一是java应用程序,而是hibernate,这两者访问是不同的,java应用程序是通过getter和setter方法来访问的,hibernate是通过反射来访问的,如果你的pojo需要被java访问,那么被访问的属性必须提供getter和setter方法,否则,就不需要了。hibernate访问pojo是可配置的,默认是property,即通过getter和setter,这时你的pojo必须提供这两个方法,如果设置为field,那么hibernate是直接反射field来获取和设置值的,field就必须在pojo里存在,这里关键是明白第二点,即hibernate访问持久化类策略的问题。

 

回归正题,就是关于那个注解标注位置问题,标注在field上就相当于设置access值为field,getter上就相当于设置access值为property

 

这里有一篇不错的技术博客介绍,相当有技巧

http://blog.sina.com.cn/s/blog_4b21f7e9010009cz.html

希望能帮助大家理解

Hibernate自动生成持久化类和映射文件 Hibernate中根据数据库中各表,使用myEclipse的返向工程,自动生成hibernate.cfg.xml 配置文件 与person.hbm.xml映射文件和持久化类 (图文介绍) 立即下载

相关推荐

手把手教你实现阿克曼ROS小车的运动控制

本文详细介绍了如何从零开始实现阿克曼ROS小车的运动控制。内容涵盖硬件搭建、STM32底层PID速度与舵机控制、ROS层阿克曼运动学模型解析,以及上下位机通信协议设计。通过手把手的代码示例和调试步骤,帮助机器人爱好者与开发者掌握将高级速度指令转化为小车具体动作的全流程,实现流畅的阿克曼转向控制。

weixin_29193259的博客 200

什叫做持久化类?

持久化bai作用是将程序数据du在持久状态和瞬时状态间转换的机制zhi。即把数据dao(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。 一般来说,持久化类(persistent class):可以被hibernate保存到数据库,并且从数据库读取的类。 持久化类:是指其实例需要被Hibernate持久化到数据库中的类。持久化类符合JavaBean的规范,包含一些属性,以及与之对应的getXXX

weixin_45636617的博客 1456

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现 BRDF简介 再介绍BRDF之前我们要引入渲染方程这个东西: 其中L表示辐射率,其公式为: 它表示了一个拥有辐射强度Φ的光源在单位面积A,单位立体角ω上的辐射出的总能量。 辐射率是辐射度量学上表示一个区域平面上光线总量的物理量,它受到入射光线与平面法线间的夹角θ的余弦值cosθ的影响:当直接...

小龙虾的博客 1万+

hibernate 初级2

转载      传智播客 ## Hibernate框架第二天 ## ---------- **课程回顾:Hibernate框架的第一天** 1. Hibernate框架的概述:ORM 2. 框架的入门的程序 * 编写映射的配置文件 * 编写核心的配置文件 * 编写程序 3. 配置的文件 4. 使用的接口和方法 ---------- **今天内容**

qq_20147577的博客 282

南京邮电大学电工电子实验(二)复习一

本文给电工电子实验(二)的复习进行一些知识点的提醒

YOUXISUN的博客 2959

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 314

java 持久化类_[Java教程]持久化类(状态介绍)

[Java教程]持久化类(状态介绍)0 2018-09-15 12:00:31叙:之前介绍了持久化、持久化类的相关信息,关于持久化类只讲了相关编写规则等(文章地址:https://www.cnblogs.com/Email-qtl777777/p/9650239.html),关于其内部的更多的划分并没进行细讲,本章电虫就持久化类的三个状态以及三种状态的区分以及三种状态的区分进行学习、...

weixin_35811662的博客 1171

电路布局中近场耦合问题

开关电源EMC设计中,传导骚扰超标往往源于空间耦合而非参数问题。某案例中,DC-DC模块的非屏蔽电感磁场泄漏耦合到邻近X电容,导致0.5MHz频点超标。通过将X电容移至PCB底层、优化布局保持15mm间距后,问题完全解决。实践证明:EMC设计需注重空间隔离,优先采用屏蔽电感,滤波元件应远离高频磁场区,布局优化比参数调整更有效。这提示工程师需将电磁兼容视为空间问题而不仅是电气问题。

硬核科技 375

hibernate笔记2——持久化类

1 持久化类的编写规则 1.1 什么是持久化类 持久化:将内存中的一个对象持久化到数据库中的过程。hibernate框架就是用来进行持久化的框架。 持久化类:一个java对象与数据库的表建立了映射关系。 1.2 持久化类的编写规则 对持久化类提供一个***无参的构造方法*** (hibernate的底层需要用反射生成实例) 属性需要私有,对私有属性提供public的***set和get方法*...

积石成岩,流则不荒 267

8-阿里云服务器 ECS配置R及Studio Server

步骤概览:(首先要明确自己的系统然后进行安装)

hx2024的博客 1572

RTA_OS基础功能讲解 2.6-资源锁和自旋锁

访问需要在任务和 ISR 之间共享的硬件或数据可能不可靠、不安全。这是因为当优先级较低的任务或 ISR 正在更新共享数据时,可能会发生任务或 ISR 抢占。这种情况被称为竞争条件,极难测试。访问共享数据的语句序列称为关键部分。要安全访问关键部分中引用的代码和数据,就需要执行互斥。换句话说,必须确保系统中没有其他任务或第 2 类 ISR 能够在关键部分期间抢占正在执行的任务。你可以将任务声明为非抢占式任务,这样就可以避免互斥问题。

本博客专注于嵌入式软件领域技术分享。 291

Hibernate 持久化类

实体类:持久化类通常称为实体类,它们代表数据库中的表。标识符:每个实体类需要有一个标识符字段,通常是主键。映射:使用 JPA 注解或 XML 文件定义实体类与数据库表之间的映射关系。

qq_33240556的博客 573

倍福控制第三方伺服走CSV模式--以汇川伺服为例

在使用TwinCAT软件控制标准CiA402协议的EtherCAT伺服时使用TwinCAT软件NC自带的运动控制指令控制伺服,此时伺服驱动器一般工作在CSP/CSV/CST模式。最常见伺服驱动器工作在CSP模式,轨迹规划运行在TwinCAT软件,位置环速度环电流环运行在伺服驱动器中。该模式下速度波动较大,需要极度平稳的速度需要采用CSV模式。本文讲述的是伺服驱动器工作在CSV模式,此时轨迹规划和位置环均运行在TwinCAT软件,速度环电流环运行在伺服驱动器中。为了简化文字描述,本文采用图文结合的方式介绍伺服

weixin_41883890的博客 4849

Hibernate访问持久化类(派生)属性的方法与策略

【转自:http://blog.sina.com.cn/s/blog_4fe8c9230100ks9f.html】     Hibernate访问持久化类属性的方法可通过setXXX()和getXXX()方法。这是优先推荐的方式,可以灵活的封装持久化类,提高域模型的透明性。若持久化类没有提供setXXX()和getXXX()方法,可以在映射文件中设置属性为field,持久化类中设置属性为publ

L-BAKE 875

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

hibernate设置派生属性, 在持久化类的访问方法中加入程序逻辑...

       假定Customer类有一个avgPrice属生, 表示这个客户的所有订单的平均价格. 它的取值为与它关联的所有Order对象的price的平均值. 在CUSTOMERS表中没有 avg_price字段. 可以在Customer类的setOrders()方法中加入程序逻辑来实现:    private Set orders = new HashSet(0);    private d

永恒小菜的专栏 1661

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Hibernate持久化类要遵循的四条主要原则

1、实现一个默认的(即无参数的)构造方法(constructor) 所有的持久化类都必须有一个 默认的构造方法(可以不是public的),这样的话Hibernate就可以使用 Constructor.newInstance()来实例化它们。 强烈建议,在Hibernate中,为了运行期代理的生成,构造方法至少是 包(package)内可见的。

Mr_Tank_ 1162

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Hibernate持久化类

持久化类: 遵循四条主要的规则: 1、实现一个默认(即无参数的)构造方法(constructor)构造方法可以不是public的,hibernate可以使用ConStructor.newInstance()来实例化它们。强烈建议,在Hibernate中,为了运行期代理的生成,构造方法至少是包内可见的。 2、提供一个标识属性(可选)映射到数据库表的主键字段。这个属性类型可以是任何的原始类型、原始类型...

asbss的博客 229

项目添加hibernate支持对持久化类的要求

hibernate使用简单的java对象这种编程模型来进行持久化。持久化类需要遵循四条主要的规则: 1.为属性字段声明访问器,hibernate默认使用protected或者private的get/set方法对,字段不需要声明为public。(可以简单测试下) 2.实现一个默认的无参构造方法:所有的持久化类都必须有一个默认的构造方法(可以不是public),这样hibernate就可以使用Co

dong_pongkk999的专栏 554

Hibernate 如何操纵持久化对象

操纵持久化对象   1.   理解Session的缓存: 在Java里面,缓存通常是指Java对象的属性占用的内存空间(实质),通常是一些集合类型的属性(Hashmap、Set、List)。在session接口的实现类SessionImpl中定义了一系列的Java集合,这些Java集合就构成了Session的缓存。 当Session的save()方法持久化一个对象时,这个对

langjian2012的专栏 758

NHibernate文档翻译 第3章 持久化类(Persistent Classes)

第 3 章 持久化类(Persistent Classes) 目录 POCO 简单示例 为持久化字段声明访问器(getters 和 setters) 实现一个默认的构造方法(constructor) 提供一个标识属性(identifier property)(可选) 建议使用不是sealed的类 (可选) 实现继承(Inheritance) ...

weixin_30621711的博客 159

持久化类(Persistent Classes)

第 5 章 持久化类(Persistent Classes)在应用程序中,用来实现业务问题实体的(如,在电子商务应用程序中的Customer和Order) 类就是持久化类。不能认为所有的持久化类的实例都是持久的状态——一个实例的状态也可能 是瞬时的或脱管的。 如果这些持久化类遵循一些简单的规则,Hibernate能够工作得最好,这些规则被称作, 简单传统Ja

待定的专栏 2018

Hibernate学习笔记二 ---持久化Java类必须遵循的原则

 q1.为类的持久化类字段申明访问方法(get/set)。Hibernate对JavaBeans风格的属性实行持久化。 q q2.实现一个默认的构造方法(constructor)。这样的话Hibernate就可以使用Constructor.newInstance()来实例化它们。 q q3.如果是集合类型的属性,它的类型必须定义为集合的接口。例如:L

319

POJO类以及映射配置文件

对持久化对象的要求 1、 提供一个无参构造器,使Hibernate可以使用Constructor.newInstace()来实例化持久化对象 2、提供一个标识属性(identifier property)。通常映射为数据库表的主键字段,如果没有该属性,一些功能将不起作用,如Session.saveOrUpdate()。 3、 为持久化类的字段声明访问方法(set/get)。Hibernate

翻滚吧小牛 1667
上一篇: hibernate 中class标签的entity-name属性
下一篇: 禁止hibernate启动是自动生成CRUD语句和hibernate实现命名约定
crazy_pan
博客等级 码龄16年 12粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值