SpringBoot集成jpa使用步骤以及场景

server/2024/11/20 5:06:39/

应用场景

将环形独立为starter后涉及到创建表数据,想要实现每一个项目在使用该starter项目的时候就把表结构导入到自己的项目中,使用jpa实现

实现步骤

1.引入依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

2.对实体类加注解

java">package org.aimeng.em.entity;import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;import javax.persistence.*;import java.io.Serializable;
import java.time.LocalDateTime;@Data
@EqualsAndHashCode(callSuper = false)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "EmMsg对象", description = "")
@Entity
@Table(name = "em_msg")
public class EmMsg implements Serializable {private static final long serialVersionUID = 1L;@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@ApiModelProperty(value = "主键id")@TableId(value = "id", type = IdType.AUTO)private Long id;@ApiModelProperty(value = "经纪人id")
//    @Column(name = "agent_id", columnDefinition = "bigint COMMENT '经纪人id'")private Long agentId;@ApiModelProperty(value = "类型(1通知、2代办)")private Integer type;@ApiModelProperty(value = "是否跳转(0是 1否)")private Integer isJump;@ApiModelProperty(value = "消息id")private String msgId;@ApiModelProperty(value = "额外字段")private String ext;@ApiModelProperty(value = "状态")private Integer status;@ApiModelProperty(value = "内容")private String content;@ApiModelProperty(value = "创建时间")@TableField(fill = FieldFill.INSERT)private LocalDateTime createTime;@ApiModelProperty(value = "更新时间")@TableField(fill = FieldFill.INSERT_UPDATE)private LocalDateTime updateTime;@Transient@TableField(exist = false)private String time;
}

解释:

  • 在类上加上@Entity和@Table注解指明表名称
  • 在主键上加上@Id和@GeneratedValue(strategy = GenerationType.IDENTITY)表明主键自增
  • @Transient注解可以忽略某个字段不被创建

  •  @Column(name = "agent_id", columnDefinition = "bigint COMMENT '经纪人id'") 该注解可以指定表名称和表类型、注释

3.配置参数

//update有则创建无则更新(注:正式环境中慎用)spring.jpa.hibernate.ddl-auto=update//输出sql,方便调试spring.jpa.show-sql=true//指定msqyl版本8spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

4.启动类加注解@EntityScan

java">@Slf4j
@SpringBootApplication
@EnableDubbo
@EnableScheduling
@CicadaScan
@ComponentScan(basePackages = {"vip.lspace.agent.*"})
public class LspaceAgentApplication {}

如果你的实体类位于不同的包中,而这个包不在 Spring Boot 应用主类所在的包及其子包中,你需要使用 @EntityScan 指定这些实体类所在的包 


http://www.ppmy.cn/server/143382.html

相关文章

React Native 全栈开发实战班 - 性能与调试之打包与发布

在完成 React Native 应用的开发与性能优化后&#xff0c;下一步就是将应用打包并发布到各大应用市场&#xff0c;如 Apple App Store 和 Google Play Store。本章节将详细介绍 React Native 应用的打包与发布流程&#xff0c;包括 Android 和 iOS 平台的打包步骤、签名配置、发…

【深度学习目标检测|YOLO算法6-27】YOLO家族进化史:从YOLOv1到YOLOv11的架构创新、性能优化与行业应用全解析...

【深度学习目标检测|YOLO算法6-2&7】YOLO家族进化史&#xff1a;从YOLOv1到YOLOv11的架构创新、性能优化与行业应用全解析… 【深度学习目标检测|YOLO算法6-2&7】YOLO家族进化史&#xff1a;从YOLOv1到YOLOv11的架构创新、性能优化与行业应用全解析… 文章目录 【深度…

CSS —— 子绝父相

相对定位&#xff1a;占位&#xff1b;不脱标 绝对定位&#xff1a;不占位&#xff1b;脱标 希望子元素相对于父元素定位&#xff0c;又不希望父元素脱标&#xff08;父元素占位&#xff09; 子级是 绝对定位&#xff0c;不会占有位置&#xff0c; 可以放到父盒子里面的任何一…

k8s入门学习

以下是一个Kubernetes (k8s) 学习详细笔记&#xff0c;旨在帮助您全面理解和掌握Kubernetes的基础概念、架构、操作方法以及最佳实践&#xff0c;从而在后端开发和运维中高效地使用Kubernetes进行容器编排和管理。 目录 引言Kubernetes基础 2.1 什么是Kubernetes&#xff1f;2…

远程管理不再难!树莓派5安装Raspberry Pi OS并实现使用VNC异地连接

前言&#xff1a;大家好&#xff01;今天我要教你们如何在树莓派5上安装Raspberry Pi OS&#xff0c;并配置SSH和VNC权限。通过这些步骤&#xff0c;你将能够在Windows电脑上使用VNC Viewer&#xff0c;结合Cpolar内网穿透工具&#xff0c;实现长期的公网远程访问管理本地树莓派…

【JavaSE】(6)抽象类和接口

目录 一、抽象类 1、什么是抽象类 2、抽象类的特点 3、抽象类的作用 4、抽象类示例代码 二、接口 1、什么是接口 2、接口的书写建议 3、接口的特点 4、实现多个接口 5、接口能“忘记类型” 6、接口间的继承 7、接口的应用 7.1、引用类型的比较--Comparable 和 Co…

Web3浪潮下的区块链应用:从理论到实践的全面解析

随着Web3的兴起&#xff0c;区块链技术作为其核心支撑&#xff0c;正迎来前所未有的应用爆发。Web3不仅仅是技术的革新&#xff0c;更代表了一种去中心化、开放、透明的互联网愿景。在这一背景下&#xff0c;区块链技术的应用正从理论走向实践&#xff0c;推动着各行各业的数字…

Lambda常用方法

记录学习Lambda表达式常用方法&#xff0c;后续接着更新&#xff01;&#xff01;&#xff01; Lambda常用方法 forEach&#xff08;循环&#xff09;filter&#xff08;过滤&#xff09;map&#xff08;转换&#xff09;peek&#xff08;*&#xff09;reduce&#xff08;加减乘…