springboot整合hibernate(非JPA)(二)

springboot整合hibernate,非jpa,若是jpa就简单了,但是公司项目只有hibernate,并要求支持多数据库,因此记录下整合开发了。基本入门可参考官网
https://docs.jboss.org/hibernate/orm/5.5/quickstart/html_single/#tutorial_annotations
为支持多数据库,下面将实现:

1、springboot2.3.7整合hibernate最新稳定版Hibernate ORM 5.5(2021年7月11日21:53:22)

2、实现ID主键自动生成(为支持MySQL、postgre SQL、Oracle)表关联

这里实现hibernate复杂的多对多,一对多、一对一等关系。第一篇请移步:
https://blog.csdn.net/weixin_44480167/article/details/118660528

一、查询

1.1 一对多

在UserBean中添加,注意一对多关联的结果为集合,顾使用List

    @OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name="user_id")//注释本表中指向另一个表的外键。
private List<UserRoleBean> userRole;

表示当前表user的主键id(默认)关联到user_role表的user_id字段
执行查询:

    @GetMapping("get")
public Object get(){
List from_userBean = sessionFactory.getCurrentSession().createQuery(
"from UserBean"
).list();
return from_userBean;
}

若不想用默认的主键关联,可以这样:

    /**
* 将 t_user 表的 password 字段 left join 到 t_user_role 表的id
* name 指向t_user_role的id
* referencedColumnName 为本表t_user的 password字段
*/
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "id",referencedColumnName = "password")
private List<UserRoleBean> userRole;

结果如下:

一对一也是这样

springboot整合hibernate(非JPA)(二)的更多相关文章

  1. springboot整合spring Data JPA

    今天敲代码,一连串的错误,我也是服气~果然,我们不是在出bug,就是在找bug的路上…… 今天完成的是springboot整合spring data JPA ,出了一连串的错,真是头大 java.sq ...

  2. SpringBoot整合Mybatis、SpringBoot整合Spring Data JPA

    Springboot Mybatis <?xml version="1.0" encoding="UTF-8"?> <project xmln ...

  3. SpringBoot 整合 hibernate 连接 Mysql 数据库

    前一篇搭建了一个简易的 SpringBoot Web 项目,最重要的一步连接数据库执行增删改查命令! 经过了一天的摸爬滚打,终于成功返回数据! 因为原来项目使用的 SpringMVC + Hibern ...

  4. springboot整合mybatis,redis,代码(二)

    一 说明: springboot整合mybatis,redis,代码(一) 这个开发代码的复制粘贴,可以让一些初学者直接拿过去使用,且没有什么bug 二 对上篇的说明 可以查看上图中文件: 整个工程包 ...

  5. Spring Data-Spring整合Hibernate基于JPA规范

    JPA:由 Sun 公司提供了一对对于持久层操作的标准(接口+文档) Hibernate:是 Gavin King 开发的一套对于持久层操作的自动的 ORM 框架. Hibernate JPA:是在 ...

  6. 【Nacos】Springboot整合Nacos配置中心(二) 多环境配置

    本篇随笔接上一篇文章:Springboot整合Nacos配置中心(一),主要记录Nacos多环境的配置的方法 Nacos多环境的配置 方法一: 1.在项目中的bootstrap.yaml文件中配置激活 ...

  7. springboot整合spring data jpa 动态查询

    Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询,在实现动态查询时我们需要用到Criteria API,主要是以下三个: 1.Criteria ...

  8. SpringBoot整合Hibernate Validator实现参数验证功能

    在前后端分离的开发模式中,后端对前端传入的参数的校验成了必不可少的一个环节.但是在多参数的情况下,在controller层加上参数验证,会显得特别臃肿,并且会有许多的重复代码.这里可以引用Hibern ...

  9. SpringBoot整合Hibernate

    编写配置文件 <!--配置读取properties文件--> <context:property-placeholder location="classpath:jdbc. ...

  10. SpringBoot整合WEB开发--(二)静态资源访问

    1.默认策略: 静态资源的位置一共5个,开发者可以将静态资源放到其中任意一个,分别是: "classpath:/META-INF/resources/", "classp ...

随机推荐

  1. 新零售SaaS架构:面向中小连锁的SaaS系统整体规划

    零售企业的发展路径 零售企业的发展路径一般可分为以下几个阶段: 单店经营阶段:企业在一个地区或城市开设单个门店.这时,企业需要把精力放在了解当地市场和顾客需求上,这是积累经验和品牌知名度的重要环节.为 ...

  2. MySQL实战实战系列 07 行锁功过:怎么减少行锁对性能的影响?

    在上一篇文章中,我跟你介绍了 MySQL 的全局锁和表级锁,今天我们就来讲讲 MySQL 的行锁. MySQL 的行锁是在引擎层由各个引擎自己实现的.但并不是所有的引擎都支持行锁,比如 MyISAM ...

  3. GO语言基础之基本运算符

    GO语言基础之基本运算符 目录 GO语言基础之基本运算符 一.运算符 内置运算符: 二.算术运算符 三.关系运算符 四.逻辑运算符 五.位运算符 六.赋值运算符 一.运算符 作用:运算符用于在程序运行 ...

  4. 若依vue分离版(ruoyi-vue)跳过token验证,设置白名单

    找到SecurityConfig类的configure方法 如图所示 在设置白名单后还需要把接口上的权限标识符去掉.然后需要重启一下项目,热加载不行,会报错.

  5. 如何在云服务上快速拥有洛甲WAF(Web防火墙)

    如何在云服务上快速拥有洛甲WAF(Web防火墙) 洛甲WAF是基于openresty的web防火墙,通过配合后台保护您的数据安全,详情参考节点服务器 luojiawaf_lua(nginx+lua) ...

  6. React生命周期函数(迭代合并:react 16.3)

    本文分两部分,上面的是react16.3,下部分是老版本 react 16.3生命周期更新解析 ------ 老react版本生命周期 1.组件生命周期的执行次数 只执行一次: constructor ...

  7. 在centos7上使用 docker安装mongodb挂载宿主机以及创建其数据库的用户名和密码(最新版本)

    前言 因为博主在使用docker安装mongodb并挂载时,发现在网上搜了好多都是以前版本的mongodb,并且按照他们操作总是在进入mongodb出问题,博主搞了好久终于弄好了,故写下博客,供有需要 ...

  8. 用结构化思维解一切BUG(3):实际案例

    背景 本文是系列文章<用结构化思维解一切BUG>的第 3 篇,也是最高潮篇!本系列文章主要介绍一种「无需掌握技术细节,只需结构化思维和常识即可解一切BUG的方法」. 在前序文章<用结 ...

  9. 【scipy 基础】--傅里叶变换

    傅里叶变换是一种数学变换,它可以将一个函数或信号转换为另一个函数或信号,它可以将时域信号转换为频域信号,也可以将频域信号转换为时域信号.在很多的领域都有广泛的应用,例如信号处理.通信.图像处理.计算机 ...

  10. 研读Java代码必须掌握的Eclipse快捷键

    1. Ctrl+左键 和F3 这个是大多数人经常用到的,用来查看变量.方法.类的定义 跳到光标所在标识符的定义代码.当按执行流程阅读时,F3实现了大部分导航动作. 2 Ctrl+Shift+G 在工作 ...