Spring Data JPA的@Entity注解

news/2025/2/23 1:06:07/

一、示例说明

 rules\CouponTypeConverter.java

@Converter
public class CouponTypeConverterimplements AttributeConverter<CouponType, String> {@Overridepublic String convertToDatabaseColumn(CouponType couponCategory) {return couponCategory.getCode();}@Overridepublic CouponType convertToEntityAttribute(String code) {return CouponType.convert(code);}
}

 entity/CouponTemplate.java

@Entity
@Builder
@EntityListeners(AuditingEntityListener.class)
@Table(name = "coupon_template")
public class CouponTemplate implements Serializable {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Column(name = "id", nullable = false)private Long id;// 状态是否可用@Column(name = "available", nullable = false)private Boolean available;@Column(name = "name", nullable = false)private String name;@Column(name = "description", nullable = false)private String description;// 适用门店-如果为空,则为全店满减券@Column(name = "shop_id")private Long shopId;// 优惠券类型@Column(name = "type", nullable = false)@Convert(converter = CouponTypeConverter.class)private CouponType category;// 创建时间,通过@CreateDate注解自动填值(需要配合@JpaAuditing注解在启动类上生效)@CreatedDate@Column(name = "created_time", nullable = false)private Date createdTime;// 优惠券核算规则,平铺成JSON字段@Column(name = "rule", nullable = false)@Convert(converter = RuleConverter.class)private TemplateRule rule;}

Spring JPA 包的标准注解,对数据库字段进行了映射,我挑几个关键注解说道一下。

1、Entity:声明了“数据库实体”对象,它是数据库 Table 在程序中的映射对象;

2、Table:指定了 CouponTemplate 对应的数据库表的名称;

3、ID/GeneratedValue:ID 注解将某个字段定义为唯一主键,GeneratedValue 注解指定了主键生成策略;

4、Column:指定了每个类属性和数据库字段的对应关系,该注解还支持非空检测、对 update 和 create 语句进行限制等功能;

5、CreatedDate:自动填充当前数据的创建时间;

6、Convert:如果数据库中存放的是 code、string、数字等等标记化对象,可以使用 Convert 注解指定一个继承自 AttributeConverter 的类,将 DB 里存的内容转化成一个 Java 对象。


http://www.ppmy.cn/news/1057927.html

相关文章

Python数据采集实战-使用BeautifulSoup框架解析HTML文档并提取所需内容(附源码和实现效果)

实现功能 使用BeautifulSoup框架解析HTML文档并提取所需内容的例子&#xff1a;假设我们要从以下HTML文档中提取所有超链接的链接地址 实现代码 from bs4 import BeautifulSoup import requests# 发送请求并获取HTML文档 url "https://www.baidu.com" response r…

BTP Integration Suite学习笔记 - (Unit4) Developing with SAP Integration Suite

详细指导还是要看官方文档 4. 云集成管理 4.1 云集成介绍 什么是云集成&#xff1f; 前三章讲了很多内容&#xff0c;但都不是最核心的&#xff0c;通常我们用CPI是让他实现原来PI/PO的功能的&#xff0c;是用来做集成的。这章才刚开始。 云集成有以下几个特性&#xff1a;…

Git,分布式版本控制工具

1.为常用指令配置别名&#xff08;可选&#xff09; 打开用户目录&#xff0c;创建.bashrc文件 &#xff08;touch ~/.bashrc&#xff09; 2.往其输入内容 #用于输出git提交日志 alias git-loggit log --prettyoneline --all --graph --abbrev-commit #用于输出当前目录所有文…

创建型模式-抽象工厂模式

在抽象工厂模式中&#xff0c;接口是负责创建一个相关对象的工厂&#xff0c;不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 抽象工厂模式提供了一种创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定具体实现类。通过使用抽象工厂模式&#xff…

怎么把视频转换成gif动图?看看怎么快速完成转换

怎么把视频转换成gif动图&#xff1f;在我们的日常生活中&#xff0c;只要上网&#xff0c;就会遇到各种形式的GIF动态图片。举个例子&#xff0c;有很多能够动起来的视频片段在网上流传。虽然这些动态图像没有声音&#xff0c;但它们展现了一些网友将视频文件转换成GIF动态图片…

vue3+ts使用vue-i18n

vue3ts使用vue-i18n 1、安装插件 npm install --save vue-i18nyarn add vue-i18n2、配置文件 locale/index.ts import { createI18n } from vue-i18n import zhCN from ./lang/zh-CN import enUS from ./lang/en-USexport const LOCALE_OPTIONS [{ label: 中文, value: zh…

博冠光电8K事业部招聘研发工程师及产品经理

一、高级结构工程师 工作职责&#xff1a;1、负责公司产品的机械结构设计、模具开发和量产导入&#xff1b;2、负责机械结构方向的技术预研&#xff0c;包括技术专题研究&#xff0c;技术难题攻关&#xff1b; 3、负责结构组的技术管理工作&#xff0c;包括带新人&#xff0c;…

# Go学习-Day5

文章目录 map增加和更新删除查询遍历&#xff08;for-range&#xff09;map切片关于哈希表遍历的一点看法对map的key排序 结构体与OOP声明、初始化、序列化方法工厂模式 个人博客&#xff1a;CSDN博客 map map是一个key-value的数据结构&#xff0c;又称为字段或关联数组 Gol…