【SSH进阶之路】【十二】hibernate5 注解映射【5】一对一共享主键关联

Day01 Geant4学习 ​ 用来记录粒子在每个step中的信息的,例如位置,能量,动量.例如,假设每一个粒子都有一个属于自己的id,会记录自己的轨迹状态信息就是track,当他发生反应时,就会产生新的id。​ 最终在新建的build文件夹中的vis.mac文件中设置,是自带的,如果有更高的需求可以自己去更改,但是一般都是写好的,设置好了图形界面的一些东西,呈现的自己建模的图形界面多大,需不需要网格什么的。从反应到结束的过程,其中也包括它产生的刺激粒子的反应到结束的过程,成为一个事件event。 阅读详情

一对一共享主键

下面我们直接通过实例来讲解共享主键配置:
主键主控方:Article

package com.chenhao.model;

@Table(name = "t_article2")
@Entity
public class Article {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
    private String title;

    @OneToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY,optional = false)
    @PrimaryKeyJoinColumn//配置共享主键,否则会额外生成外键关联列
    private ArticleContent articleContent;
    //忽略get 和set方法
}

引用主键方:ArticleContent。这是共享主键关联的关键配置地方所在类

package com.chenhao.model;

@Table(name = "t_article_content")
@Entity
public class ArticleContent {
    @Id
    @GenericGenerator(name = "foreignKey" ,//生成器名称
    strategy = "foreign",//使用hibernate的外键策略
    parameters = @Parameter(value = "article",name = "property"))//指定成员属性中的article所在类的主键为本类的主键,这里的参数属性name必须为"property"
    @GeneratedValue(generator = "foreignKey")//使用上述定义的id生成器
    private Integer id;
    @Lob
    private String content;
    //如果试图不加此注解来形成单向关联,会抛出异常,
    //因为设置了共享主键这里是否配置mapperBy放弃维护关联关系已失去作用。
    @OneToOne(cascade = CascadeType.ALL)
    @PrimaryKeyJoinColumn//如果不加此注解,hibernate会在数据库默认生成一条article_id属性
    private Article article;

    //忽略get 和set方法

下面是我们的测试方法:

Article article = new Article();
article.setTitle("title");
ArticleContent articleContent = new ArticleContent();
articleContent.setContent("content");
article.setArticleContent(articleContent);
articleContent.setArticle(article);//必须双方设置
session.save(article);

下面是几点需要注意的:

1.在设置属性ID的时候必须注意字段的长度,如笔者这样使用Oracle的sequence来生成ID,其长度有14位之长,则应选择hibernate类型long,对应的实体中应选择Long,这样不会出现溢出的情况。

2.在测试的时候必须要注意这两张表之间因为已经存在了一对一的关系,所以我们不能只写articleContent.setArticle(article);而忽略了articleContent.setArticle(article);这样在做插入的时候会报出attempted to assign id from null one-to-one property: address的错误.
3.如果不写cascade=”all”或者写成cascade=”none”的话,即使写了article.setArticleContent(articleContent);和articleContent.setArticle(article);也不会发生任何事情,只有user会被存储。
4.one-to-one的效率问题——-one-to-one在查询时,总是查出和主表关联的表,而且one-to-one的lazy属性只有false proxy no-proxy三种,没有true。outer-join=”false”也只是徒增查询语句条数,把本来的一条sql语句变成多条。所以在one-to-one这种一对一的关系不是很强的情况下(one-to-one关系强即总是查出这所有的几个关联表),或者是在一张表中存在多个one-to-one的情况下,使用最好one-to-many来代替one-to-one。
【电机控制入门】——电机控制书籍推荐 电机控制入门书籍推荐及分享 阅读须知: 1.电机控制的入门是涉及到机械、电子与控制等复杂交叉学习,它需要持续投入时间才可以看到学习的效果,如同“一万小时定律”。俗话说,九层之台,起于垒土,因此电机控制入门没有所谓的速成培训班。相反,还需要夯实好一定的基础。为此,博主建议从基础理论抓起,故推荐相关的书籍并分享给大家。 2.学习电机贵在动手实践,无论是借助于MATLAB/Simulink仿真平台来验证理论分析,或是使用板子对所设计的控制系统进行物理实现,博主极力推荐在一定基础(看完部分以下推荐的书籍),一边动手 阅读详情

相关推荐

华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图)

本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。

backprop5master的博客 643

2009.11.24——Hibernate(5) Annotations注解之@onttoone

2009.11.24——Hibernate(5) Annotations注解之@onttoone 别的也不说了,就看下我写的例子吧,以Car和License 数据库建表: [code="java"]create table car ( cid number(7) primary key, carName varchar2(20) not null );[/code] [co...

187

麒麟OS恢复出厂设置原理与实操:非重装的系统状态回滚

Linux操作系统中的‘恢复出厂设置’并非简单重装或镜像还原,而是一种基于状态快照、包管理与配置模板的可控回滚机制。其核心原理依赖LVM快照技术、RPM包签名验证和预置配置模板,兼顾系统稳定性与用户数据安全。该方案在政务、教育等国产化场景中具有显著技术价值——不格式化硬盘、不丢失/home文档、不重配驱动与授权,大幅降低运维复杂度。典型应用场景包括系统卡顿修复、软件冲突清理、桌面环境异常恢复等。本文深入解析银河麒麟V10的kylin-restore-cli工具链与麒麟管家集成逻辑,聚焦‘恢复出厂设置’这一高

weixin_30879169的博客 773

Hibernate @OnetoOne注解

@OneToOne详解

cc_xp的博客 4161

uniapp 实现RFID识别的实战指南

本文提供了在uniapp中实现RFID识别的完整实战指南。核心在于通过Android系统广播机制,利用uni-app的plus对象调用原生接口,完成与RFID手持设备的“软硬件握手”。文章详细介绍了从环境准备、设备选型、核心代码实现到避坑优化的全流程,帮助开发者快速构建高效的RFID盘点或管理应用。

weixin_29161719的博客 406

Gmsh+OCC对应版本库编译

输入 GMSH_DLL_EXPORT值C:\LIB\OCCT-7_8_0-i;9、如果只是生成库文件编译gmesh工程即可生成文件在C:\LIB\Gmsh\gmsh-4.13.1-Windows64-B\Debug 下gmsh.dll、gmsh.lib、gmsh.h、gmshc.h文件;3、CMAK编译Gmsh对应OCC版本的,CMAK选择源文件路径C:\LIB\Gmsh\gmsh-4.13.1-source,生成构建文件路径C:\LIB\Gmsh\gmsh-4.13.1-Windows64-B。

u013401364的博客 412

@OneToOne实例

1)Person.java   import java.io.Serializable; import java.util.Date; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persist

走向资深架构师的旅程 4万+

OpenCv —— 检测车牌号(附完整源码)

OpenCv —— 检测车牌号

5601

hibernate的OneToOne映射等

hibernate的OneToOne探究

u011526599的专栏 1万+

使用 MATLAB/Simulink + Communications Toolbox + 5G Toolbox,构建一个2×2 MIMO-OFDM通信系统

本文通过Simulink+CommunicationsToolbox构建2×2 MIMO-OFDM通信系统,重点实现信道均衡滤波器(ZF与MMSE)的设计与应用。详细介绍了系统架构、建模步骤(包括信道估计、均衡器实现)和仿真场景设计,通过BER、星座图和EVM对比分析验证了MMSE均衡器在抑制噪声和信号恢复方面的优势。文章总结了MIMO均衡的核心原理与实践经验,并提出了扩展至大规模MIMO、深度学习均衡器等优化方向,为无线通信系统设计提供实用指导。

amy_mhd的博客 127

RT-DETR改进策略【卷积层】| CVPR-2020 Strip Pooling 空间池化模块 处理不规则形状的对象 含二次创新

一、本文介绍 本文记录的是利用Strip Pooling模块优化RT-DETR的目标检测网络模型。Strip Pooling结合了长而窄的卷积核形状在一个空间维度上的长程关系捕捉能力和在另一个空间维度上的局部细节捕捉能力,有效地处理复杂的场景信息。这一机制通过采用1×N1×N1×N或N×1N×1N×1的池化核形状来适应不同的图像特征,提高模型对目标形状和分布的适应性。在场景解析网络中,Strip Pooling可以被用于提升对具有长程带状结构或离散分布目标的解析能力,特别是在复杂场景或不同对象布局条件下效果

Limiiiing的博客 580

hibernate5(13)注解映射[5]一对一共享主键关联

一对一共享主键 下面我们直接通过实例来讲解共享主键配置: 主键主控方:Article package com.zeng2.model; @Table(name = "t_article2") @Entity public class Article { @Id @GeneratedValue(strategy...

weixin_33682719的博客 197

UG二次开发之 三面摆正体代码分析

CIUGUIBlock 是一个从UIBlock 派生的一个类,为什么要从UIBlock 派生出CIUGUIBlock,这是为了兼容低版的UG。如果我们不从的UIBlock 派生控件类对象指针,在UG 8.5以下的版本,会出现编译错误的问题。这是一个简单的入门功能,包括了不少的常用的UF函,下面我们将结合成品代码一起分析一下常用的函数,这对初学者是必要的。根据创建好的UI控件,在 initialize_cb 中创建控件的指针对象。//根据选定的面,指定 X,Y坐标系轴。//根据变换的矩阵,平移实体。

u014657217的博客 351

hibernate实体关联注解版

      以前用ssh做小项目的时候都是先建数据库再来写Model层,但是总觉得这样就太浪费别人hibernate创始人的初衷,原原本本的ORM框架被我那么一用,面对对象的思想压根就没体现出来,于是今天就试了一把先建Model层,然后直接用 hibernate自带的工具hbm2ddl生成数据库表。其中最难搞的就是实体之间的关联关系,什么一对一,一对多,多对多,又是单向关联又是多向关联的,弄得自己...

ZOUXUE7的博客 169

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SSH框架搭建步骤总结以及Hibernate二级缓存,查询缓存

二级缓存、查询缓存 一级缓存: 默认启动,生命周期是和session同步的,session独享 二级缓存: 需要加载配置信息,生命周期是和应用服务器同步,session共享 1:在hibernate.cfg.xml中开启二级缓存 <!-- 开启二级缓存 --> <property name="hibernate.cache....

Town 117

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java Web框架对比:SSH和SSM

SSH:Spring+Struts2+Hibernate SSM:Spring+SpringMVC+MyBatis

sinat_26841049的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java面试:SSH和SSM

SSH(Struts2+Spring+Hibernate)和SSM(SpringMVC+Spring+MyBatis) Struts和SpringMVC异同 共同点: 1. 都是表现层框架,都是基于MVC模式编写的 2. 处理请求的机制都是一个核心控制器 不同点: 1. Struts2是基于类级别,SpringMVC是基于方法级别的。 即Struts的每次请求都会生成一个Action...

初阶农民工的博客 681

Java Web J2EE下的两大框架SSH和SSM对比

SSH:spring+Struts2+hibernate SSM:Spring+SpringMVC+MyBaitis 两个框架都是IoC容器+MVC框架+ORM框架。IoC的意思是控制反转,意思是把创建和查找依赖对象的控制权交给容器而不是自己实例化对象;MVC框架采用MVC分层,模型层处理数据逻辑,通常是模型对象在数据库存取数据,视图层处理数据显示,控制器层处理用户交互,通常从视图读取数据,控制

1万+

SSH和SSM框架对比

SSH:Spring+Struts2+Hibernate SSM:Spring+SpringMVC+MyBatis 框架都是IoC容器+MVC框架+ORM框架。 IoC:控制反转,意思是把创建和查找依赖对象的控制权交给容器而不是自己实例化对象; MVC框架采用MVC分层,模型层处理数据逻辑,通常是模型对象在数据库存取数据,视图层处理数据显示,控制器层处理用户交互,通常从视图读取数据,控制用户...

weixin_42078450的博客 235

SSM对比SSH

SSH:Spring+Struts2+Hibernate SSM:Spring+SpringMVC+MyBatis 两个框架都是IoC容器+MVC框架+ORM框架。IoC的意思是控制反转,意思是把创建和查找依赖对象的控制权交给容器而不是自己实例化对象;MVC框架采用MVC分层,模型层处理数据逻辑,通常是模型对象在数据库存取数据,视图层处理数据显示,控制器层处理用户交互,通常从视图读取数据,控制用户

qq_38449792的博客 437

Java Web框架对比SSH和SSM

SSH:Spring+Struts2+Hibernate  SSM:Spring+SpringMVC+MyBaitis 两个框架都是IoC容器+MVC框架+ORM框架。 IoC的意思是控制反转,意思是把创建和查找依赖对象的控制权交给容器而不是自己实例化对象; MVC框架采用MVC分层,模型层处理数据逻辑,通常是模型对象在数据库存取数据,视图层处理数据显示,控制器层处理用户

迟到的二货 2991

SSM和SSH框架对比

SSM和SSH框架对比 1. SSH:Spring+Struts2+Hibernate SSM:Spring+SpringMVC+MyBaitis    两个框架都是IoC容器+MVC框架+ORM框架。IoC的意思是控制反转,意思是把创建和查找依赖对象的控制权交给容器而不是自己实例化对象;MVC框架采用MVC分层,模型层处理数据逻辑,通常是模型对象在数据库存取数据,视图层处理数据显示,控制器层...

qq_29733887的博客 514

spring框架简介

SpringMVC接收参数的方式 1:通过@PathVariable获取路径中传递的参数 在方法参数前2:通过@ModelAttribute获取post请求中的form表单数据 在方法参数前3:通过HttpServletRequest获取3:用@RequestParam2. SpringMVC配置文件Web.xml:初始化spring容器 加载配置文件 contextConfigLocation配置前端控制器 加载SpringMVC.Xml 设定startup为1,启动时加载 过滤所有请求统一编码方式 Ch

weixin_57763462的博客 526

简答题专题

本文摘要总结了Java主流框架SSH与SSM的核心概念及区别,包括各组件功能、Servlet技术、MyBatis配置与缓存机制、Spring的IOC/AOP原理及常用注解、SpringMVC工作流程等内容。重点对比了SSH(Struts+Spring+Hibernate)与SSM(SpringMVC+Spring+MyBatis)在架构设计(XML配置vs注解驱动)、ORM处理(自动SQLvs手动SQL)等方面的差异,并详细解析了Spring框架的依赖注入方式、AOP专业术语及Bean生命周期管理。同时涵盖

2501_92139388的博客 969

javaee、Spring等概念及区别

参考:JAVAEE学习路线分享 【SSM 1】SpringMVC、Spring和Struts的区别 Java Web J2EE下的两大框架SSH和SSM对比 初学JavaWeb需要知道的目录结构与配置j2ee项目就是web项目。Web服务是总体概念,J2EE是一种实现方式,还有.NET版、PHP版等不同的实现方式,Web服务器是指能处理Http协议请求开放了某些服务端口的机器.比如OS+IIS

火星男孩的分享空间 1万+

Web安全攻防90天速成:从漏洞利用到防御架构的实战进阶指南

Web安全是网络安全的核心领域,其本质在于理解并应对Web应用与服务的潜在风险。从基础原理出发,掌握HTTP/HTTPS、SQL注入、XSS等常见漏洞的成因与利用方式,是构建安全认知的第一步。深入理解攻击链,能帮助开发者与安全工程师从根源上设计更有效的防护策略,例如通过参数化查询防御SQL注入,或利用内容安全策略(CSP)缓解XSS。在技术价值层面,这种攻防兼备的思维模式,是实现从单点漏洞修复到体系化安全建设跃迁的关键。它直接服务于构建弹性安全架构,满足企业在业务快速发展中对安全性的内生需求。具体到应用场景

lizaochengwen的专栏 332
上一篇: 我的收款二维码
下一篇: 【设计模式】【一】设计六大原则
帅胖子
博客等级 码龄11年 308粉丝 68原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值