首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hibernate是直接读取域对象实例字段还是在保存时使用getter方法?

Hibernate在保存对象时使用getter方法。

Hibernate是一个开源的对象关系映射(ORM)框架,它提供了将Java对象映射到关系数据库中的功能。在Hibernate中,对象的持久化是通过Session对象来完成的。

当使用Hibernate保存对象时,它会通过调用对象的getter方法来获取对象的属性值,然后将这些属性值保存到数据库中。这是因为Hibernate遵循JavaBean规范,通过getter和setter方法来访问对象的属性。

通过使用getter方法,Hibernate可以确保对象的属性值是最新的,因为getter方法可以在返回属性值之前执行任何必要的逻辑。此外,使用getter方法还可以保护对象的封装性,隐藏属性的实现细节。

总结起来,Hibernate在保存对象时使用getter方法来获取对象的属性值,并将其保存到数据库中。这种方式可以确保属性值的准确性和封装性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

接近8000字的SpringSpringBoot常用注解总结!安排!

@Scope 声明 Spring Bean 的作用使用方法: @Bean @Scope("singleton") public Person personSingleton() { return...new Person(); } 四种常见的 Spring Bean 的作用: singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。...参数校验 数据的校验的重要性就不用说了,即使在前端对数据进行校验的情况下,我们还是要对传入后端的数据再进行一遍校验,避免用户绕过浏览器直接通过一些 HTTP 工具直接向后端请求一些违法数据。...Hibernate Validator Hibernate 团队最初的数据校验框架,Hibernate Validator 4.x Bean Validation 1.0(JSR 303)的参考实现...指定不持久化特定字段 @Transient :声明不需要与数据库映射的字段保存的时候不需要保存进数据库 。

2K20

SpringBoot+Spring常用注解总结

扁平化对象 11. 测试相关 1. @SpringBootApplication 这个注解 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认主类加上。...@Scope 声明 Spring Bean 的作用使用方法: @Bean @Scope("singleton") public Person personSingleton() { return...new Person(); } 四种常见的 Spring Bean 的作用: singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。...参数校验 数据的校验的重要性就不用说了,即使在前端对数据进行校验的情况下,我们还是要对传入后端的数据再进行一遍校验,避免用户绕过浏览器直接通过一些 HTTP 工具直接向后端请求一些违法数据。...相关注解: @ControllerAdvice :注解定义全局异常处理类 @ExceptionHandler :注解声明异常处理方法 如何使用呢?拿我们第 5 节参数校验这块来举例子。

90620

安排上了!一文掌握 Spring Boot 常用注解

,不会使用那么杂乱无章的写法而且维护也麻烦,通过就是一次性读取到一个 Java 配置类,然后需要使用的地方直接引用这个类就可以多次访问了,方便维护。...所有的注解,推荐使用 JSR 注解,即 javax.validation.constraints,而不是 org.hibernate.validator.constraints Bean字段验证注解...JPA数据持久化 上面百度百科给的概念,只能说实际项目开发中还是用的不多,大家还是喜欢用 Mybatis,不过相比更加简洁的技术还是要学习下的。...,可以让事物遇到非运行时异常也回滚。...扁平化对象 @JsonUnwrapped 这个可能不太好说,大家直接看代码就懂了: @Getter @Setter @ToString public class Account { @JsonUnwrapped

1.5K51

JAVA编程学习经验实践积累总结分享

*懒汉是不是类加载初始化类的实例对象,不能保证对象的唯一性,所以多线程的情况下尽管有 实例对象空值的判断,也会产生线程安全的问题,因为多线程按照时间片来运行线程的,破坏类代码 的垂直执行的顺序...实例化和初始化的区别:*1. 实例对象堆中新分配一个内存空间,栈中存入新建对象堆内存中的地址。*2....如: 建表字段类型:timestamp default CURRENT_TIMESTAMP;这样保存实体字段数据就可以省略该字段的设置值。 31....Java中栈存放基本数据类型值的,比如对象的地址,整形,堆存放大对象的,比如字符串String等。栈中 读取数据比堆中读取数的效率要高。 12. 形参和实参的区别就是是否有给参数赋值。...替换文本,我还是不太理解,是不是用编辑器的文本替换/html文档字段里的内容字段??oFCKeditor.ReplaceTextarea(); ); 3.

76930

实战:应用对持久数据访问| 从开发角度看应用架构9

大魏这个类,在被生成对象,会从数据库表中读数据,然后可能会对数据修改,修改的这些数据,会存到持久性上下文中(运行在内存中),默写情况下,会被存回数据库表中(例如提交)。...另外,应该通过使用getter和setter方法来访问每个实例变量。 最后,类必须至少有一个没有参数的构造函数,尽管类仍然可以有其他构造函数接受参数。...getter方法的返回类型必须与传递给setter方法的参数的类型相同。 getter和setter方法必须public或protected,并且必须遵循Java bean的命名约定。...3jta-data-source数据源的名称。每个持久性单元都必须有一个数据库连接。 JPA提供程序启动使用JNDI查找服务按名称查找数据源。...4可以属性元素中设置其他标准或特定于供应商的属性。 hibernate.Dialect属性指定使用哪个数据库。具有更新值的hibernate.hbm2ddl.auto属性会自动更新模式。

1.6K30

Hibernate框架学习之注解映射实体类

这两种情况下,数据表中的season字段一种保存枚举类型的具体值,一种保存枚举值对应的序号。...@OrderColumn注解用于配置有序集合的序号,由于list有序的集合,通过该注解将会在address表中增加一个字段保存各个元素集合中的序号。...而对于有序集合来说,还应该包含一个字段用于保存每个集合元素集合中的序号,该序号字段和第一个外键依赖字段组合成新表的联合主键,唯一标识一条记录。...hibernate的管理下,当有数据添加进userinfo表的时候,hibernate将拿到该实体类实例的集合属性的值,并连带该实例的id一起插入到新表中。...,setter方法 } 显然,实体类中的集合类型属性的映射,大体上一样的。

3K90

应用对持久数据的管理 | 从开发角度看应用架构7

二、对象关系映射 当应用程序将数据存储永久性存储中(例如flat file,XML文件或数据库的持久性数据),它被称为数据的持久性。...关系数据库企业应用程序用来保存数据以供重用的最常见的数据存储之一。 Java EE企业应用程序中的业务数据被定义为Java对象。 这些对象保存在相应的数据库表中。...:访问数据表的实例。 三、实体 一个entity一个可持久化的、轻量级的对象。 entity class映射到关系数据库中的表。 entity class的每个实例都有一个主键字段。...Java中,entity一个简单的旧Java对象(POJO)类,它使用@Entity注释进行了注释。 entity类中的所有字段默认存储在数据库中,并称为持久字段。...EE托管对象(如EJB)中获得EntityManager实例的另一种方法生产者技术。

2.7K40

2018-08-05 3W+字长文深度总结|程序员面试题精华版集合(内附思维导图)!Java Web学习路径Java编程所需的工具及知识JVM的基本结构SSH框架设计模式之间的关系

现在有许多ORM工具,它们底层调用jdbc来实现了ORM工作,我们直接使用这些工具,就省去了直接使用jdbc的繁琐细节,提高了开发效率,现在用的较多的ORM工具hibernate。...Spring主要核心: (1).控制反转(IOC):以前传统的java开发模式中,当需要一个对象我们,我们会自己使用new或者getInstance等直接或者间接调用构造方法创建一个对象,而在Spring...实例化一个java对象有三种方式:使用类构造器,使用静态工厂方法使用实例工厂方法,当使用spring我们就不需要关心通过何种方式实例化一个对象,spring通过控制反转机制自动为我们实例化一个对象。...(2).依赖注入(DI):Spring使用java Bean对象的Set方法或者带参数的构造方法为我们创建所需对象将其属性自动设置所需要的值的过程就是依赖注入的基本思想。...最常见的方式就是通过主键或者时间等字段进行Hash和取模后拆分。水平分表,能够降低单表的数据量,一定程度上可以缓解查询性能瓶颈。但本质上这些表还保存在同一个库中,所以库级别还是会有IO瓶颈。

58710

Spring框架学习之高级依赖关系配置(一)

Spring内置的一个特殊的bean,它可以获取指定实例的指定getter方法的返回值。...id,通过注入propertyPath属性值,告诉它目标对象的具体getter方法的名称。...于是我们在后续的bean配置中就可以直接使用该bean所包含的值了。 2、获取静态字段值 对于提供了getter方法的属性,我们可以使用上述方法通过getter方法获取到该属性的值。...对于并为提供getter方法的属性值,我们也可以直接获取,但前提该属性访问权限足够(private肯定是不能够获取得到的)。...本小节学习的获取静态的字段,对于非静态字段,Spring也提供了方法获取,但是一般的程序对于非静态字段都会使用private修饰,提供良好的封装性,因此我们也不能获取得到,所以对于非静态字段的获取意义不大

50990

Java程序员面试题集(86-115)

答:主要有以下三项区别: ① 如果没有找到符合条件的记录, get方法返回null,load方法抛出异常 ②get方法直接返回实体类对象, load方法返回实体类对象的代理 ③ Hibernate 3...之前,get方法一级缓存(内部缓存)中进行数据查找, 如果没有找到对应的数据则越过二级缓存, 直接发出SQL语句完成数据读取; load方法则可以充分利用二级缓存中的现有数据;当然从Hibernate...最常见的乐观锁通过数据版本标识来实现的,读取数据获得数据的版本号,更新数据将此版本号加1,然后和数据库表对应记录的当前版本号进行比较,如果提交的数据版本号大于数据库中此记录的当前版本号则更新数据,...答:延迟加载就是并不是在读取的时候就把数据加载进来,而是等到使用时再加载。Hibernate使用了虚拟代理机制实现延迟加载。返回给用户的并不是实体本身,而是实体对象的代理。...代理对象在用户调用getter方法就会去数据库加载数据。但加载数据就需要数据库连接。而当我们把会话关闭,数据库连接就同时关闭了。

1.8K70

Hibernate面试题大全

这里写图片描述 持久化状态 当保存在数据库中的对象就是持久化状态了 当调用session的save/saveOrUpdate/get/load/list等方法的时候,对象就是持久化状态 在数据库有对应的数据...因此能提高检索性能,并且能节省内存空间; 缺点: 应用程序如果希望访问游离状态代理类实例,必须保证他持久化状态已经被初始化; 延迟加载:lazy=true; 迫切左外连接检索: 优点: 1对应用程序完全透明...,不管对象处于持久化状态,还是游离状态,应用程序都可以方便地冲一个对象导航到与它关联的对象。...select:返回的一个resultset,要从ResultSet中一行一行、一个字段一个字段的取出,然后封装到一个对象中,不直接返回一个对象。...所以它会立即执行Sql insert 使用 save() 方法保存持久化对象,该方法返回该持久化对象的标识属性值(即对应记录的主键值); 使用 persist() 方法保存持久化对象,该方法没有任何返回值

2K50

框架篇

使用Hibernate框架,不用写JDBC代码,仅仅是调用一个save方法,就可以将对象保存到关系数据库中,仅仅是调用一个get方法,就可以从数据库中加载出一个对象。   ...6、hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决?...1.缓存就是把以前从数据库中查询出来和使用过的对象保存在内存中(一个数据结构中),这个数据结构通常是或类似HashMap,当以后要使用某个对象,先查询缓存中是否有这个对象,如果有则使用缓存中的对象,如果没有则去查询数据库...2.Hibernate的Session就是一种缓存,我们通常将之称为Hibernate的一级缓存,当想使用session从数据库中查询出一个对象,Session也是先从自己内部查看是否存在这个对象,存在则直接返回...缺省的Spring bean 的作用Singleton. 16、解释Spring框架中bean的生命周期。   1.Spring容器 从XML 文件中读取bean的定义,并实例化bean。

72320

Hibernate框架学习之一

例例如对几十、几百张包含几十个字段的表进行插入操作,编写的SQL语句不但很长,而且繁琐,容易出错;在读取数据,需要写多条 getXxx 语句从结果集中取出各个字段的信息,不但枯燥重复,并且工作量非常大... Hibernate 的启动过程中,Configuration 类的实例首先定位映射文档的位置,读取这些配置,然后创建一个 Sessionfactory 对象。...【加载核心配置文件】   使用 Hibernate ,首先要创建 Configuration 实例,Configuration 实例主要用于启动、加载、管理 hibernate 的配置文件信息。...) 方法获取 Session 实例,SessionFactory 直接创建一个新的 Session实例,并且使用完成后需要调用 close ( ) 方法进行手动关闭。...Session 线程不安全的,多个并发线程同时操作一个 Session 实例,就可能导致 Session 数据存取的混乱(方法内部定义和使用 Session ,不会出现线程问题)。

88280

Hibernate框架学习之一

例例如对几十、几百张包含几十个字段的表进行插入操作,编写的SQL语句不但很长,而且繁琐,容易出错;在读取数据,需要写多条 getXxx 语句从结果集中取出各个字段的信息,不但枯燥重复,并且工作量非常大... Hibernate 的启动过程中,Configuration 类的实例首先定位映射文档的位置,读取这些配置,然后创建一个 Sessionfactory 对象。...【加载核心配置文件】   使用 Hibernate ,首先要创建 Configuration 实例,Configuration 实例主要用于启动、加载、管理 hibernate 的配置文件信息。...) 方法获取 Session 实例,SessionFactory 直接创建一个新的 Session实例,并且使用完成后需要调用 close ( ) 方法进行手动关闭。...Session 线程不安全的,多个并发线程同时操作一个 Session 实例,就可能导致 Session 数据存取的混乱(方法内部定义和使用 Session ,不会出现线程问题)。

1.1K70

Java面试宝典4.0版

Java 中 static 方法不能被覆盖,因为方法覆盖基于运行时动态绑定的,而 static 方法编 译静态绑定的。 static 方法跟类的任何实例都不相关,所以概念上不适用。...如果 子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding) 。子 类的对象使用这个方法,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。...创建索引,你需要确保该索引应用在 SQL 查询语句的条件 ( 一般作为 WHERE 子句的条 件 ) 。 实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。... JSP 中的最重要的一个内置对象,可以通过 pageContext 获 取其他对象的应用,同时它是一个对象,作用范围只针对当前页面,当前 页面结束, pageContext 销毁, 生命周期...getter 方法与 request 打交道的; struts2 中,一个 Action 对象对应一个 request 上下文。

1.1K40

Java理论知识及面试题

6、说说spring的作用   singleton:每个Spring IoC容器中一个bean定义对应一个对象实例。   ...优点:java的反射机制就是增加程序的灵活性、   缺点:缺点:     (1)性能问题:使用反射基本上一种解释操作,用于字段方法接入时要远慢于直接代码。...实例变量必须创建对象后才可以通过这个对象使用,静态变量则可以直接使用类名来引用。 3、是否可以从一个 static 方法内部发出对非 static 方法的调用?   ...优点:java的反射机制就是增加程序的灵活性、   缺点:缺点:(    (1)性能问题:使用反射基本上一种解释操作,用于字段方法接入时要远慢于直接代码。...哪种依赖注入方式你建议使用,构造器注入,还是 Setter方法注入? 你两种依赖方式都可以使用,构造器注入和Setter方法注入。

53520

Java中使用Hibernate系列之映射文件学习(第一节)

我们使用Hibernate,它需要知道怎样去加载(load)和存储(store)持久化类的对象,这也正是Hibernate映射文件发挥作用的地方;这个需要映射文件告诉Hibernate,应该访问哪个数据库...(database)里面的哪个表(table)及应该使用表里面的哪些字段(column)。...已经知道怎样把Events类的对象持久化到数据库的EVENTS表里,以及怎样从EVENTS表加载到Events类的对象,每个实例对应着数据库表中的一行;这个重点说明主键(唯一的)属性如何映射到数据库表,...- Hibernate使用getId()和setId()来访问它,column属性则告诉Hibernate我们使用EVENTS表的哪个字段作为主键;嵌套的generator元素指定了标识符生成策略,在这里我们指定...> 和id元素一样,property元素的name属性告诉Hibernate使用哪个getter和setter方法;在此例中,Hibernate会寻找getDate()/setDate(), 以及getTitle

86960

SSM框架面试题总结

),项目启动的时候会读取配置文件里面的bean节点,根据全限定类名使用反射创建对象放到map里,扫描到打上上述注解的类还是通过反射创建对象放到map里 这个时候map里就有各种对象了,接下来我们代码里需要用到里面的对象...) 控制反转: 没有引入IOC容器之前,对象A依赖于对象B,那么对象A初始化或者运行到某一点的时候,自己必须主动去创建对象B或者使用已经创建的对象B,无论创建还是使用对象B,控制权都在自己手上....加载后,直至第一次使用调用getBean方法才抛出异常 ApplicationContext,它是容器启动,一次性创建了所有的bean.这样,容器启动,我们就可以发现Spring中存在的配置错误...使用bean Spring容器关闭时调用DisposableBean中的destory()方法 解释下Spring支持的几种bean的作用 Singleton:默认,每个容器中只有一个bean的实例...Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏Hibernate开发的简洁性。而MybatisfiSQL手动编写的,所以可以按需求指定查询的字段

52130

Java EE实用教程笔记----(7)第七章 Hibernate基础

该类一个典型的POJO类,定义了3个属性并自动生成了它们的get和set方法,可以发现,类中的属性与表的字段一一对应的。那么通过什么方法把它们相互关联起来呢?正是*.hbm.xml映射文件!...则与数据库中表的字段一一对应。 Hibernate映射文件实体对象与数据库关系表之间项目转换的重要依据。...Hibernate会自动根目录(即classes)下搜索hibernate.cfg.xml文件,并将其读取到内存中作为后续操作的基础配置。 2....Session接口:CRUD提供持久化方法操纵DB 同时,值得注意的Hibernate框架中Session的设计是非线程安全的,即一个Session实例只可由一个线程使用,对同一个Session实例的多线程并发调用将导致难以预知的错误...还有一种通用的设置方法,就是setParameter()方法,不管是什么类型的参数都可以应用。其使用方法相同的,例如: ?

80140
领券