搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Monodyee
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
基于Ollama和AnythingLLM搭建本地化知识库RAG_anythingllm +ollalm 实现rag知识库
2
毕业设计 基于STM32单片机的汽车防撞与控制系统_基于stm32的车祸自动报警系统
3
git中遇到的问题_and have 1 and 1 different commits each, respectiv
4
libmodbus使用_libmodbus使用说明
5
如何下载Idea专业版_idea专业版下载
6
flask_sqlalchemy常用查询语句总结_flask-sqlalchemy查询语法
7
沟通的三个重要元素和基础_沟通元素按重要程度排序
8
两张不同字段表结果集放在一个列表_多表不同子段放在其中一个表中
9
postman调用springboot附件上传接口几种报错情况及处理_postman file springsupport missing
10
CentOS7搭建Kafka集群_centos7中kafka集群
当前位置:
article
> 正文
Hibernate的基本标签和映射
作者:Monodyee | 2024-05-03 09:51:44
赞
踩
hibernate-mapping for 标签
hibernate基本映射标签和属性
1.<hibernate-mapping>标签
<hibernate-mapping schema="schemaName" (1) catalog="catalogName" (2) default-cascade="cascade_style" (3) default-access="field|property|ClassName" (4) default-lazy="true|false" (5) auto-import="true|false" (6) package="package.name" (7) />
(1) schema (可选): 数据库schema的名称。
(2) catalog (可选): 数据库catalog的名称。
(3) default-cascade (可选 - 默认为 none): 默认的级联风格。
(4) default-access (可选 - 默认为 property): Hibernate用来访问所有属性的策略。可以通过实现PropertyAccessor接口 自定义。
(5) default-lazy (可选 - 默认为 true): 指定了未明确注明lazy属性的Java属性和集合类, Hibernate会采取什么样的默认加载风格。
(6) auto-import (可选 - 默认为 true): 指定我们是否可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。
(7) package (可选): 指定一个包前缀,如果在映射文档中没有指定全限定的类名, 就使用这个作为包名。 假若有两个持久化类,它们的非全限定名是一样的(就是两个类的名字一样,所在的包不一样),应该设置auto-import="false".如果把一个“import”的名字对应两个类,Hibernate会拋出一个异常hibernate-mapping元素允许嵌套多个<class>映射,但最好的做法是一个持久化类对应一个映射文件,并以持久化的超类名称命名。如:Xxx.hbm.xml
2.<class>标签
<class name="ClassName" (1) table="tableName" (2) dynamic-update="true|false" (3) dynamic-insert="true|false" (4) optimistic-lock="none|version|dirty|all" (5) lazy="true|false" (6) />(1)name(可选):持久化类(或者接口)的Java全限定名。如果这个属性不存在,Hibernate将假定这是一个非POJO的实体映射
(2)table(可选-默认是类的非全限定名):对应数据库表名,生成DDL时数据表名,如果省略,则名称同持久化类名称
(3)dynamic-update(可选,默认为false):指定用于UPDATE的SQL将会在运行时动态生成,只更新那些被改过的字段
(4)dynamic-insert(可选,默认为false):指定用于insert的sql将会在运行时动态生成,并且只包含那些非空字段
(5) optimistic-lock(乐观锁定) (可选,默认是version): 决定乐观锁定的策略。
(6) lazy (可选): 通过设置lazy="false", 所有的延迟加载(Lazy fetching)功能将被全部禁用(disabled)。
3.<id>标签
<id>标签必须配置在<class>标签的第一个位置。由一个字段构成主键,<id>元素定义了该属性到数据库表主键字段的映射
<id name="propertyName" (1) type="typename" (2) column="column_name"> (3) length="length"> (4) <generator class="generatorClass" /> </id>
(1)name:实体类的属性名字
(2)type:标识Hibernate类型的名字(省略则使用Hibernate默认类型),也可以自己配置类型(integer,long,short,float,double,character,byte,boolean,yes_no,true_false)
(3)column(可选-默认为属性名):主键字段的名字(省略则取name为字段名)
(4)length(可选):当type为varchar时,设置字段长度
<generator>元素(主键生成策略)
主键生成策略必须配置,用来为该持久化类的实例生成唯一的标识。
uuid:
用一个128-bit的UUID算法生成字符串类型的标识符,这在一个网络中是唯一的(使用了IP地址),UUID被编码为一个32位16进制数字的字符串,它的生成是由Hibernate生成,一般不会重复UUID包含:IP地址,JVM的启动时间,系统时间和一个计算器值。
native:
根据底层数据库的能力选择identity,sequence或者hilo中的一个(数据库自增)
assigned
让程序在save()之前为对象分配一个表示符。这是<generator>元素没有指定时的默认生成策略。(如果是手动分配,则需要设置此配置)
5.<property>标签
用于映射普通属性到表字段
<property name="propertyName" column="column_name" type="typename" length="" unique="" not-null="" > </property>
注:如果实体类和实体类中的属性和SQL中的关键字重复,必须采用table或column重新命名
6.Hibernate完整映射实例:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <!-- class标签 实体类映射到数据表 * name属性:实体类的完整路径 * table属性:实体类映射到数据库中的表名,如果省略,则为实体类的类名称 --> <class name="com.wjt276.hibernate.User1"> <!-- 映射数据库主键 映射到数据表中的字段名默认为类属性名,但可以利用column重新指定--> <id name="id" column="id"> <!-- generator设置主键生成策略 uuid:一万年内生成唯一的字符串 --> <generator class="uuid"/> </id> <!-- property 映射普通属性 映射到数据表中的字段名默认为类属性名,但可以利用column重新指定 unique:唯一约束; not-null:非空约束 length:字段长度 --> <property name="name" unique="true" not-null="true" length="20"/> <property name="password" not-null="true" length="10"/> <property name="createTime"/><!--Hibernate会自动根据实体类属性类型生成数据库表中字段类型 --> <property name="expireTime"/> </class> </hibernate-mapping>
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Monodyee/article/detail/529012
推荐阅读
article
安卓简单
登录
退出
Demo
_
android
退出
登录
代码 初始化...
安卓
登录
退出
demo代码_
android
退出
登录
代码 初始化
android
退出
登录
代码 初始化 ...
赞
踩
article
【
MySQL
】
索引
及其B+
树
_
mysql
索引
b
+
树
...
数据库这么多数据,为什么能查的这么快?是B+
树
。_
mysql
索引
b
+
树
mysql
索引
b
+
树
需...
赞
踩
article
Leetcode
(234)——
回文
链表
_
回文
链表
leetcode
...
Leetcode
(234)——
回文
链表
题目给你一个单
链表
的头指针 head ,请你判断该
链表
是否为
回文
链表
。如果是,返回...
赞
踩
article
很是惆怅,
不知
如何看待
自己
智能
车
竞赛
获奖
结果_
智能
车
竞赛
拿奖难吗...
简 介: 今天凌晨,看到公众号(TSINGHUAZHUOQING)同学的留言,内心也在不停回应同学的问题。虽然这一天忙着...
赞
踩
article
Pytorch
框架下
的
CNN
和
RNN
...
建立了3层(3层=2层+1层全连接层)。分别是conv1、conv2和分类问题中
的
全连接层线性层out。
Pytorch
框...
赞
踩
article
图床搭建
GitHub
+
PicGo
+
jsdelivr
(
CDN
)+
Typora
(内附加速工具)...
PicGo
是一个用于上传图片的客户端,支持拖拽上传、剪贴板上传,功能十分方便。下载地址:个人网盘自取版本2.4.0:链接...
赞
踩
article
基础课16——
客服
中心内部使用的
智能
客服
系统
_
智能
质检
系统
里
质检
工单
吗...
客服
中心内部使用的
智能
客服
系统
有
智能
客服
、
智能
质检
、坐席辅助等_
智能
质检
系统
里
质检
工单
吗
智能
质检
系统
里
质检
工单
吗 ...
赞
踩
article
点云
基础介绍
(
一
)
——
三维
点云
...
三维
点云
(
3D Point Cloud
)
是一种用于表示
三维
空间中对象或场景的数据结构。在最基础的形式中,它是一个包含多个...
赞
踩
article
六、
kotlin
的
函数
式
编程_
kotlin
函数
式
编程...
答: 在中是一种用限定作用域, 以 区分参数和
函数
体
的
表达
式
, 叫 其本质是代码块, 你也可以理解成可调用
的
函数
类型对象...
赞
踩
article
解决 Program
type
already
present
问题...
`打包报错: Program
type
already
present
: com.ohmerhe.kolley.imag...
赞
踩
article
你
是
如何
转行
的
?
转行
容易
吗
?
...
你
是
如何
转行
的
?
转行
容易
吗
?
没考上大学,也不喜欢复读。特别不喜欢父母从小说的,考不上大学没有出路的说法。所以心里头一直想...
赞
踩
article
Hive
_
hive
可以
实现
从
hive
ql
语言到什么程序
的
映射...
Hive
Hive
是基于Hadoop
的
一个数据仓库工具,
可以
将结构化
的
数据文件映射为一张数据库表,并提供简单
的
s
ql
查询功...
赞
踩
article
线性表
12种
基本操作
...
线性表
12种
基本操作
@前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越...
赞
踩
article
vue
5
生命周期
,
axios
以及
动画
....
动画
哦
vue
5
生命周期
,
axios
以及
动画
.
生命周期
,...
赞
踩
article
git
多人
协作
开发
流程
(以
blog
为例)_
git
分布式
开发
协作
流程
...
http://
blog
.leezhong.com/tech/2011/02/25/
git
-workflow-with-b...
赞
踩
article
3D
点云
深度
学习
框架
PointNet
、
PointNet
++
详解...
PointNet
、
PointNet
++
架构详细解读,实战演练,
点云
深度
学习
框架不再困难_
点云
深度
学习
点云
深度
学习
...
赞
踩
article
Vue项目报错:
error
:
0308010C
:
digital
envelope
routines
::...
此电脑>属性>高级系统设置>环境变量>系统变量>选择变量Path>点击编辑>点击新建(输入路径),然后记得确定保存呀!然...
赞
踩
article
【C#】
获取
汉字
拼音
首字母
和
全拼
_
c#
根据
汉字
获取
拼音
全拼
...
【C#】
获取
汉字
拼音
首字母
和
全拼
namespace ChineseConvertLibrary { /**//// ...
赞
踩
article
【
Docker
Desktop
】Windows 10 上
Docker
Desktop
的安装与配置...
windows 10 上
docker
desktop
的基础配置_
windows10
安装
docker
desktop
w...
赞
踩
article
CSDN
的
崛起与
发展
:共享
技术
,连接未来_
csdn
谁创办
的
...
随着互联网
的
快速
发展
,计算机科学与
技术
行业也在持续蓬勃
发展
。作为中国最大
的
IT
技术
社区,
CSDN
(China Soft...
赞
踩
相关标签
android
android studio
b树
数据库
数据结构
b+树
mysql
链表
leetcode
算法
深度学习
自然语言处理
pytorch
cnn
rnn
github
人工智能
大数据
语音识别
人机交互
计算机视觉
kotlin
开发语言
AS编译
转行