springboot整合hibernate(非JPA)(二)

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;

结果如下:
在这里插入图片描述
一对一也是这样

posted @   凌康  阅读(176)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示