Skip to content

ElanZh/hello-jpa

Repository files navigation

JPA 使用示例


hello.elan.jpa.auth

使用JPA来实现经典的 账号(manager)-角色(role)-菜单(resource) 权限控制系统

其中:

  • 账号-角色 多对多
  • 菜单-角色 多对多
  • 菜单-子菜单 一对多

修改application.yaml中的数据库链接,就可以直接启动项目

项目第一次启动时InitRunner会向三张表插入一堆有父子级的菜单,一个admin角色,一个admin账号

其中 AuthService 使用 JpaSpecificationExecutor 执行各种复杂查询


hello.elan.jpa.freight

使用JPA 实现 城配货运三个实体的关联关系:

运单(Waybill)-运单地址(WaybillAddress)-包裹(Wrap)

  • 一个运单对应多个地址

  • 每个地址有一组要卸车的包裹

  • 新增顺序为,新增包裹,把包裹分配给运单,同时将同一地点的包裹生成运单地址


为了展现JPA的终极形态,引入QueryDSL:

QueryDSL的方法使用在 QueryService中

使用QueryDSL需要先 mvn compile


SQL监控

Hibernate打出的sql没法看,要设置各种trace/debug级别的日志,而且碰到枚举的入参就不会显示值

因此,引入p6spy : 引入过程


如果启动碰到了tomcat报错,用这个解决:tomcat报错解决

不解决也没啥问题

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages