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 @ 2022-09-16 00:09  凌康  阅读(167)  评论(0编辑  收藏  举报