model实体类中hibernate注解

Hibernate注解,带实例详细讲解 Hibernate注解 Hibernate类级别注解 Hibernate属性级别注解 Hibernate关系映射级别注解 一、Hibernate类级别注解 @Entity //指定一个类是标准的实体类(要映射到数据表) @Embeddable //表示此类并不是一个实体类(创建表格)而是一个可以嵌入到另一个实体类中作为属性存在(组件属性),只要一个类添加上@Embeddable注... 阅读详情
Hibernate注解

1。@Entity(name="EntityName")

必须,name为可选,对应数据库中一的个表



2、@Table(name="",catalog="",schema="")

可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息

name:可选,表示表的名称.默认地,表名和实体名称一致,只有在不一致的情况下才需要指定表名

catalog:可选,表示Catalog名称,默认为Catalog("").

schema:可选,表示Schema名称,默认为Schema("").



3、@id

必须

@id定义了映射到数据库表的主键的属性,一个实体只能有一个属性被映射为主键.置于getXxxx
()前.



4、@GeneratedValue(strategy=GenerationType,generator="")

可选

strategy:表示主键生成策略,有AUTO,INDENTITY,SEQUENCE 和 TABLE 4种,分别表示让ORM
框架自动选择,

根据数据库的Identity字段生成,根据数据库表的Sequence字段生成,以有根据一个额外的表生
成主键,默认为AUTO

generator:表示主键生成器的名称,这个属性通常和ORM框架相关,例如,Hibernate可以指定
uuid等主键生成方式.

示例:

@Id

@GeneratedValues(strategy=StrategyType.SEQUENCE)

public int getPk() {

return pk;

}



5、@Basic(fetch=FetchType,optional=true)

可选

@Basic表示一个简单的属性到数据库表的字段的映射,对于没有任何标注的getXxxx()方法,默认
即为@Basic

fetch: 表示该属性的读取策略,有EAGER和LAZY两种,分别表示主支抓取和延迟加载,默认为
EAGER.

optional:表示该属性是否允许为null,默认为true

示例:

@Basic(optional=false)

public String getAddress() {

return address;

}



6、@Column

可选

@Column描述了数据库表中该字段的详细定义,这对于根据JPA注解生成数据库表结构的工具非常
有作用.

name:表示数据库表中该字段的名称,默认情形属性名称一致

nullable:表示该字段是否允许为null,默认为true

unique:表示该字段是否是唯一标识,默认为false

length:表示该字段的大小,仅对String类型的字段有效

insertable:表示在ORM框架执行插入操作时,该字段是否应出现INSETRT语句中,默认为true

updateable:表示在ORM框架执行更新操作时,该字段是否应该出现在UPDATE语句中,默认为
true.对于一经创建就不可以更改的字段,该属性非常有用,如对于birthday字段.

columnDefinition:表示该字段在数据库中的实际类型.通常ORM框架可以根据属性类型自动判
断数据库中字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是DATE,TIME还是
TIMESTAMP.此外,String的默认映射类型为VARCHAR,如果要将String类型映射到特定数据库的
BLOB或TEXT字段类型,该属性非常有用.

示例:

@Column(name="BIRTH",nullable="false",columnDefinition="DATE")

public String getBithday() {

return birthday;

}



7、@Transient

可选

@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.

如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注
解为@Basic

示例:

//根据birth计算出age属性

@Transient

public int getAge() {

return getYear(new Date()) - getYear(birth);

}



8、@ManyToOne(fetch=FetchType,cascade=CascadeType)

可选

@ManyToOne表示一个多对一的映射,该注解标注的属性通常是数据库表的外键

optional:是否允许该字段为null,该属性应该根据数据库表的外键约束来确定,默认为true

fetch:表示抓取策略,默认为FetchType.EAGER

cascade:表示默认的级联操作策略,可以指定为ALL,PERSIST,MERGE,REFRESH和REMOVE中的若
干组合,默认为无级联操作

targetEntity:表示该属性关联的实体类型.该属性通常不必指定,ORM框架根据属性类型自动判
断targetEntity.

示例:

//订单Order和用户User是一个ManyToOne的关系

//在Order类中定义

@ManyToOne()

@JoinColumn(name="USER")

public User getUser() {

return user;

}



9、@JoinColumn

可选

@JoinColumn和@Column类似,介量描述的不是一个简单字段,而一一个关联字段,例如.描述一个
@ManyToOne的字段.

name:该字段的名称.由于@JoinColumn描述的是一个关联字段,如ManyToOne,则默认的名称由
其关联的实体决定.

例如,实体Order有一个user属性来关联实体User,则Order的user属性为一个外键,

其默认的名称为实体User的名称+下划线+实体User的主键名称

示例:

见@ManyToOne



10、@OneToMany(fetch=FetchType,cascade=CascadeType)

可选

@OneToMany描述一个一对多的关联,该属性应该为集体类型,在数据库中并没有实际字段.

fetch:表示抓取策略,默认为FetchType.LAZY,因为关联的多个对象通常不必从数据库预先读取
到内存

cascade:表示级联操作策略,对于OneToMany类型的关联非常重要,通常该实体更新或删除时,其
关联的实体也应当被更新或删除

例如:实体User和Order是OneToMany的关系,则实体User被删除时,其关联的实体Order也应该
被全部删除

示例:

@OneTyMany(cascade=ALL)

public List getOrders() {

return orders;

}



11、@OneToOne(fetch=FetchType,cascade=CascadeType)

可选

@OneToOne描述一个一对一的关联

fetch:表示抓取策略,默认为FetchType.LAZY

cascade:表示级联操作策略

示例:

@OneToOne(fetch=FetchType.LAZY)

public Blog getBlog() {

return blog;

}



12、@ManyToMany

可选

@ManyToMany 描述一个多对多的关联.多对多关联上是两个一对多关联,但是在ManyToMany描述
中,中间表是由ORM框架自动处理

targetEntity:表示多对多关联的另一个实体类的全名,例如:package.Book.class

mappedBy:表示多对多关联的另一个实体类的对应集合属性名称

示例:

User实体表示用户,Book实体表示书籍,为了描述用户收藏的书籍,可以在User和Book之间
建立ManyToMany关联

@Entity

public class User {

private List books;

@ManyToMany(targetEntity=package.Book.class)

public List getBooks() {

return books;

}

public void setBooks(List books) {

this.books=books;

}

}



@Entity

public class Book {

private List users;

@ManyToMany(targetEntity=package.Users.class, mappedBy="books")

public List getUsers() {

return users;

}

public void setUsers(List users) {

this.users=users;

}

}

两个实体间相互关联的属性必须标记为@ManyToMany,并相互指定targetEntity属性,

需要注意的是,有且只有一个实体的@ManyToMany注解需要指定mappedBy属性,指向
targetEntity的集合属性名称

利用ORM工具自动生成的表除了User和Book表外,还自动生成了一个User_Book表,用于实现多对
多关联



13、@MappedSuperclass

可选

@MappedSuperclass可以将超类的JPA注解传递给子类,使子类能够继承超类的JPA注解

示例:

@MappedSuperclass

public class Employee() {

....

}



@Entity

public class Engineer extends Employee {

.....

}

@Entity

public class Manager extends Employee {

.....

}



14、@Embedded

可选

@Embedded将几个字段组合成一个类,并作为整个Entity的一个属性.

例如User包括id,name,city,street,zip属性.

我们希望city,street,zip属性映射为Address对象.这样,User对象将具有id,name和
address这三个属性.

Address对象必须定义为@Embededable

示例:

@Embeddable

public class Address {city,street,zip}

@Entity

public class User {

@Embedded

public Address getAddress() {

..........

}

}

手把手教你:基于STM32H7自制飞控,如何从零开始移植PX4固件(附避坑指南) 本文详细介绍了如何基于STM32H7自制飞控板并移植PX4固件的完整流程,包括硬件设计、开发环境搭建、关键配置文件移植、驱动开发与适配等关键步骤。特别针对PX4-AutoPilot的移植过程提供了实用技巧和避坑指南,帮助开发者高效完成飞控系统开发。 阅读详情

相关推荐

SAP MM新手避坑指南:工厂间调拨用301还是303?手把手教你选对移动类型

本文深入解析SAP MM模块中工厂间调拨的301与303移动类型,帮助新手避开常见陷阱。通过对比一步法(301)和两步法(303+305)的核心差异、适用场景及财务影响,提供清晰的决策框架和实战技巧,确保库存调拨的准确性和效率。

weixin_29223603的博客 349

model实体类中Hibernate注解说明

Hibernate注解 1。@Entity(name="EntityName") 必须,name为可选,对应数据库中一的个表 2、@Table(name="",catalog="",schema="") 可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表的信息 name:可选,表示表的名称.默认地,表名和

dodo0_0的专栏 2537

用MFRC522+STM32打造智能门禁:从硬件选型到云端控制全流程

本文详细介绍了基于STM32微控制器和MFRC522射频模块构建智能门禁系统的完整流程。从硬件选型、电路设计、底层驱动开发,到系统软件架构与状态机设计,并最终实现通过ESP8266模块接入云端平台(如OneNET)进行远程控制和数据可视化。项目深入探讨了MFRC522的SPI通信、卡片操作流程、天线调试以及云端MQTT集成等关键技术,为嵌入式开发者提供了一个从本地感知到云端管控的物联网项目实战参考。

raspberrypi5的博客 741

Hibernate,JPA 对象关系映射之简单映射策略

简单映射 ORM 对象关系的映射,现在已成为炙手可热的技术,深受广大开发人员的追捧。JPA 2.0 作为新的持久化规范,大有统一持久化市场的气势,并且简单易学,尤其是加上 JDK 5 中引入的 Annotation 注解的使用,使得 JPA 的使用更为简单,现在已经为持久化领域开发人员的首选。简单映射,是对象关系映射中最为简单的一种,也是最为基础的一种,学好简单映射是掌握继承映射

u011863709的专栏 755

计算机毕业设计springboot基于微信平台的二次元手办商场小程序【附源码】

选题背景: 随着二次元文化的兴起和普及,越来越多的人开始对二次元角色产生了浓厚的兴趣和喜爱。手办作为二次元文化的重要载体之一,成为了许多二次元爱好者收藏和展示的对象。然而,在传统的线下手办商场中,消费者往往面临着时间、空间和选择的限制。因此,基于微信平台的二次元手办商场小程序应运而生。 选题意义: 首先,基于微信平台的二次元手办商场小程序能够打破地域限制,使得用户可以随时随地通过手机进行购物。无论是在家中、上班途中还是旅行中,用户都能够方便地浏览和购买自己喜欢的手办,极大地提高了购物的便利性和灵活性。

拉期程序 452

ArduPilot代码解析之四 — 姿态和位置控制

ArduPilot采用级联控制架构实现飞行器的姿态和位置管理。该系统通过位置→速度→加速度→姿态→角速率→电机指令的逐级转换,将高级指令转化为底层执行信号。位置控制采用三维独立控制,水平轴与垂直轴分别处理;姿态控制通过角度误差→角速率→电机输出的两层级联实现。系统支持多种输入模式,并内置运动学整形功能确保轨迹平滑。不同飞行器类型(多旋翼、直升机、潜艇等)有专门的调参方案,通过调整PID参数、加速度限制等实现最优控制性能。该架构兼顾控制精度与飞行稳定性,适用于各类自主飞行场景。

rainercool的专栏 826

hibernate中Entity的作用理解

导论:身为一个初学者,从mvc到jpa都是按照框架一步一步前进,在使用过程中不断学习,不断理解每一步设计的意义。 背景:实体类Entity在主流两种数据库框架中都作为一个映射数据库的表结构的java类,每一个都需要不厌其烦地写一个entity,然后才把数据从数据库中读取到后台进行调用。...

chouwu9312的博客 487

YOLOv13添加轻量化的EMA模块Faster_EMA,轻量又涨点!map50提升4.56个点,召回率提升9.66!

本文介绍了YOLOv13模型的优化移植方法,通过添加Faster_EMA模块和超参数调整,使模型性能显著提升。主要修改包括:1) 创建新的模型配置文件yolov13-Faster_EMA.yaml;2) 在tasks.py中添加新模块;3) 修改__init__.py和block.py文件,新增Partial_conv3和DropPath类。优化后模型mAP50提升4.56%,召回率提升9.66%,验证了改进方案的有效性。代码实现了局部卷积和随机深度等先进技术,为YOLO系列模型性能优化提供了新思路。

FJN110的博客 2605

hibernate merge的问题,创建多条实例对象不生效

业务背景: 前端传回一个bean对象,某个字段存有多个公司名称,并被逗号分隔开,后端处理成字符串数组,需要按照单个公司名称创建一条数据, 某个字段A多选,列表生成多条数据,按照A进行单个创建 需要配合detach和save使用,生成的新对象必须考虑hashcode不同(地址) 解决 ↓ for (int j = 0; j < auditUnitNames.length; j++) { String auditUnitIdone = auditUnitIds[j];

weixin_42646261的博客 304

计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题

计算机组成原理(第三版)唐朔飞-第十章控制单元的设计-课后习题

weixin_45735391的博客 3万+

微信小程序启用蓝牙设备特征值变化时的notify功能

注意:这里的serviceUUID、notifyCharacteristicUUID 我会在后面写入数据时做重点说明。isNotifyBLECharacteristic:false, //是否启用蓝牙设备服务特征 notify。二、启用蓝牙设备特征值变化时的notify功能。下一篇 将继续介绍 微信小程序蓝牙设备写入数据。

wsk198726的专栏 1173

java hibernate生成实体类_(转) Eclipse通过HibernateTools实现逆向生成Hibernate实体类...

背景:工作中使用Hibernate进行持久化的开发工作,所以有必要详细了解这方面的知识。ps:这里有个问题就是刷新表的时候速度太慢了。还不如自己手动去创建。如果表太多倒是可以采取批量生成的策略。在项目开发时,要么先完成数据库表的设计,再逆向生成实体类或者根据需求分析建立实体类,有正向生成数据库表。没有人会浪费大量的时间在进行完任意一方时自己匹配建立另一方设计,这样做还可能导致两边映射不一致,对开发...

weixin_30658759的博客 540

【DRAM存储器十五】DDR介绍-关键技术之DLL和prefetch

详述DDR DLL和预取原理以及几个DDR相对初代SDRAM新增的时序参数

highman110的博客 4370

Spring+SpringMVC+Hibernate实现登录

Model层开发 创建实体类 Spring与Hibernate的整合 DAO层开发 UserInfoDAO接口 UserInfoDAOImpl Service层开发 UserInfoService接口 UserInfoServiceImpl Controller层开发 Spring整合SpringMVC webxml配置 springmvcxml配置 创建交互页面 上一篇https://blog.c

Stark_JC的博客 4437

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hibernate3.6Final中寻找annotations

hibernate3.6Final中本身集合了annotations 路径在 hibernate3.jar\org\hibernate\annotations 查询annotations是否存在 在User Libraries中加入下面的包即可 [如图:附件] 在model中引入 import javax.persistence.Entity; import javax.p...

jil568的博客 142

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

使用myeclipse创建带注解的model实体类

1.先新建JPA项目: 如果没有就点击左下角的Show All Wizards. 点两次Next后,点击Finish即可,中间不用任何操作 (点第二次Next后会出现连接到所在数据库,先不管) 连接数据库的如下图的Connection 点击FINISH后如图 2.打开Myelipse Database Explore...

diaochi4858的博客 323

拍卖系统 用户注册1

31 1025

czhc1140075663的博客 62

jpa链接oracle出现表名无效,spring jpa 列名映射问题Unknown column 'redisrole0_.create_date' in 'field list',@column无...

在使用spring jpa 访问数据库表时,在实体类上定义的@column 会无效,package com.lujia.domain;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;import jav...

weixin_32730471的博客 508

MyBatis-plus

MyBatis-Plus(简称MP)是一个 MyBatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MP会内置集成部分SQL方法,可以直接使用,而不用一个SQL需求对应一个Mybatis下的一个SQL条目。 pom.xml 引入Mybatis-Plus的jar坐标,覆盖Spring-MyBatis 修改application.yml配置文件 ...

weixin_44949182的博客 551

Hibernate-Validation的使用

首先是要加入下面两个包 hibernate-validator-4.1.0.Final.jar validation-api-1.0.0.GA.jar 如果在验证不通过的时候进行了添加、更新或删除操作的时候,则会抛出javax.validation.ConstraintViolationException异常 下面是测试用的类 Model2: import javax.persist...

weixin_34221073的博客 97

hibernate(二)annotation第一个示例

一、在数据库中创建teacher表(数据库hibernate) create table teache( id int auto_increment primary key, name varchar(20), title varchar(20) );   二、创建model 在cn.orlion.hibernate.model下创建实体类Teacher(注意添加注解,一开...

weixin_33835103的博客 77

Hibernate与Jpa的关系

我知道Jpa是一种规范,而Hibernate是它的一种实现。除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,所以使用Jpa的一个好处是,可以更换实现而不必改动太多代码。在play中定义Model时,使用的是jpa的annotations,比如javax.persistence.Entity, Table, Column, OneToMany等等...

u012219089的博客 117
上一篇: 一个悬浮的DIV,实现鼠标拖动等功能
下一篇: 下载txt文件
rainVSjava
博客等级 码龄15年 1粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值