Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Hibernate/JPA -注释bean方法与字段

Hibernate/JPA -注释bean方法与字段
EN

Stack Overflow用户
提问于 2009-06-02 13:37:11
回答 5查看 46.4K关注 0票数 37

我有一个关于Hibernate用法的简单问题。我经常看到人们以两种方式之一使用JPA注释:注释类的字段和注释相应bean上的get方法。

我的问题如下:注解字段和使用@Id等JPA注解的bean方法有区别吗?

示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Entity
public class User
{

**@ID**
private int id;

public int getId(){
return this.id;
}

public void setId(int id){
this.id=id;
}

}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Entity
public class User
{


private int id;

**@ID**
public int getId(){
return this.id;
}

public void setId(int id){
this.id=id;
}

}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-02 14:42:48

是的,我相信你想搜索字段而不是属性访问:

Hibernate Annotations - Which is better, field or property access?

Spring首选项是field access。这就是我所遵循的。

票数 17
EN

Stack Overflow用户

发布于 2009-06-02 14:41:16

是的,如果您注释了字段,Hibernate将使用字段访问来设置和获取这些字段。如果您注释这些方法,hibernate将使用getter和setter。Hibernate将根据@Id注释的位置选择访问方法,据我所知,您不能混合匹配。如果你用@Id注解一个字段,那么方法上的注解将被忽略,反之亦然。还可以使用类级别批注@AccessType手动设置该方法

Hibernate Annotations reference guide已被证明是解决此类问题的一个非常有用的资源,并详细说明了访问类型如何向下层级递减。

票数 44
EN

Stack Overflow用户

发布于 2010-05-10 11:49:05

我的建议是注释这些方法。通过这样做,您可以获得一点灵活性。例如,假设您有几个类:

  • AbstractEntity
  • StringIdEntity
  • AutoIdEntity

AbstractEntity定义了id字段/getter/setter。StringIdEntityAutoIdEntity类继承自AbstractEntity,但使用不同的@Id策略。如果对字段进行了注释,则不能将其从一个类更改为另一个类。

如果您注释了这些方法,您可以在AbstractEntity中将getId()标记为@Transient/abstract,然后在子类中,您只需覆盖该方法并应用您希望使用的策略。我曾经自己对字段进行注释,并遇到了这种情况,并决定我将始终对前进的方法进行注释。

因此,即使您没有立即看到注释方法的好处,但当您有如此多的类时,它可能会变得显而易见,以至于切换将成为一个绝对令人头疼的问题。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/942035

复制
相关文章
Hibernate 和 JPA
Hibernate 在 5 以后的版本中全面推进使用 JPA 的查询语法,甚至准备废弃掉自己已有的查询语法。
HoneyMoose
2022/01/13
5070
Hibernate 和 JPA
快速学习-hibernate与JPA的概述
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
cwl_java
2020/04/01
1.3K0
Spring全家桶之SpringData——Spring 整合Hibernate与Hibernate Jpa
注意 1. sql语句 ,是通过对象查询的表 ,虽然可以出现select 但是却不能出现通配符 *,故可以省略 Select * 2 .区别 getCurrentSession 与openSession 方法的用法 getCurrentSession:当前session 必须要有事务边界, 且只能处理唯一的一个事务。当事务提交或者回滚后session 自动失效 openSession:每次都会打开一个新的session.加入每次使用多次。则获得的是不同session 对象。使用完毕后我们需要手动的调用colse方法关闭session
时间静止不是简史
2020/07/25
2.9K0
Spring整合Hibernate、Hibernate JPA、Spring Data JPA、Spring Data Redis
环境说明,使用Jdk1.8版本,spring4.2.0.RELEASE版本、hibernate5.0.7.Final版本,spring-data-jpa-1.9.0.RELEASE版本、spring-data-redis-1.6.0.RELEASE版本。
别先生
2020/05/27
5.6K0
mysql添加表注释、字段注释、查看与修改注释
1 创建表的时候写注释 create table test1 ( field_name int comment ‘字段的注释’ )comment=’表的注释’;
全栈程序员站长
2022/07/11
8K0
Spring整合Hibernate JPA
JPA:就是由Sun公司提供的一套对于持久层操作的标准(接口加文档),没有具体的实现。
害恶细君
2022/11/22
1.2K0
Java的类/方法/字段注释详解
一个程序的可读性,关键取决于注释。如果一个程序想二次开发,要读懂前面的程序代码,就必须在程序中有大量的注释文档,所以对于一个优秀的程序员来说,学会在程序中适当地添加注释是非常重要的。
JavaEdge
2020/05/26
3.2K0
Hibernate学习笔记 JPA简介
Hibernate除了是一个ORM框架之外,同时还实现了Java EE的一项标准JPA。我们在前面已经看到了Hibernate可以在注解方面直接使用JPA。现在我们来看看如何在Hibernate中使用JPA。
乐百川
2022/05/05
5760
Spring认证中国教育管理中心-Spring Data Couchbase教程三
原标题:Spring认证中国教育管理中心-Spring Data Couchbase教程三(Spring中国教育管理中心)
IT胶囊
2022/01/11
1.8K0
Spring认证中国教育管理中心-Spring Data Couchbase教程三
Hibernate Session和Jpa EntityManager
本文适用 Hibernate:4.3.11.Final 和 spring-data-jpa:1.10.4.RELEASE 。
pollyduan
2019/11/04
2.1K0
mybatis和hibernate的以及jpa区别_hibernate sql
hibernate和mybatis是当前流行的ORM框架。hibernate对数据库结构提供了较为完整的封装。mybatis主要着力点在于java对象与SQL之间的映射关系。
全栈程序员站长
2022/09/30
1.2K0
mybatis和hibernate的以及jpa区别_hibernate sql
JPA、Hibernate、Spring Data JPA 的关系,你懂吗?
来源:https://my.oschina.net/u/3080373/blog/1828589
Java技术栈
2019/07/31
1.8K0
什么是JPA?Java Persistence API简介
作为规范,Java Persistence API关注持久性,它将Java对象的创建过程和具体的创建形式解耦。并非所有Java对象都需要持久化,但大多数应用程序都会保留关键业务对象。JPA规范允许您定义应该保留哪些对象,以及如何在Java应用程序中保留这些对象。
银河1号
2019/05/16
10.3K0
什么是JPA?Java Persistence API简介
查询 MySQL 字段注释的 5 种方法!
很多场景下,我们需要查看 MySQL 中表注释,或者是某张表下所有字段的注释,所以本文就来盘点和对比一下查询注释的几种方式。
磊哥
2022/05/09
5.4K0
查询 MySQL 字段注释的 5 种方法!
快速学习-Spring Data JPA 入门
使用Spring Data JPA,需要整合Spring与Spring Data JPA,并且需要提供JPA的服务提供者hibernate,所以需要导入spring相关坐标,hibernate坐标,数据库驱动坐标等
cwl_java
2020/04/01
4150
Hibernate 如何生成 JPA 的 Metamodel
然后 Maven 将会在 target 文件夹中生成 Metamodel 的源代码。
HoneyMoose
2022/01/13
1.1K0
Hibernate 如何生成 JPA 的 Metamodel
使用Spring Boot,JPA,Hibernate和Postgres的多租户应用程序
多租户是一种方法,应用程序实例由不同的客户使用,从而降低软件开发和部署成本,与单一租户解决方案相比,在这种解决方案中,需要触及多个部分以提供新客户端或更新现有租户。
Java架构师历程
2018/09/26
7.8K1
使用Spring Boot,JPA,Hibernate和Postgres的多租户应用程序
关于Java持久化相关的资源汇集:Java Persistence API
先来个BEA的网上技术交流会(Webinar):EJB3 Java Persistence API:好的、坏的和一般功能,附件是PPT资料。
阿敏总司令
2019/02/28
2.5K0
SpringDataJPA+EasyUi实现CRUD操作
JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术。
xiangzhihong
2022/11/30
3940
Mysql 查看表注释或字段注释
查看所有表的注释 SELECT table_name 表名, table_comment 表说明 FROM information_schema.TABLES WHERE table_schema = '数据库名' ORDER BY table_name 查询所有表及字段的注释 SELECT a.table_name 表名, a.table_comment 表说明, b.COLUMN_NAME 字段名, b.column_comment 字段说明, b.column_type 字段类型, b.column_
码客说
2019/10/22
11.4K0

相似问题

JPA与Hibernate注释的关系

32

JPA2.0字段注释与方法注释

20

Hibernate JPA注释

11

JPA级联注释与Hibernate级联注释的区别

18

在JPA (Hibernate)中注释字段和方法之间的区别?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文