当前位置: 首页 > news >正文

SpringBoot PO VO BO POJO实战指南

基于Spring Boot的PO(持久化对象)

以下是一些基于Spring Boot的PO(持久化对象)实例示例,涵盖不同场景和功能:

基础PO类示例

@Entity
@Table(name = "users")
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String username;private String email;
}
@Entity
@Table(name = "products")
public class Product {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String name;private BigDecimal price;
}

关联关系示例

@Entity
@Table(name = "orders")
public class Order {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@ManyToOne@JoinColumn(name = "user_id")private User user;
}
@Entity
@Table(name = "order_items")
public class OrderItem {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@ManyToOne@JoinColumn(name = "order_id")private Order order;@ManyToOne@JoinColumn(name = "product_id")private Product product;
}

继承关系示例

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "vehicle_type")
public abstract class Vehicle {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String manufacturer;
}

@Entity
@DiscriminatorValue("CAR")
public class Car extends Vehicle {private int numberOfDoors;
}

复杂类型处理

@Entity
public class Employee {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Embeddedprivate Address address;
}

@Embeddable
public class Address {private String street;private String city;private String zipCode;
}

审计字段示例

@Entity
@EntityListeners(AuditingEntityListener.class)
public class Document {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@CreatedDateprivate LocalDateTime createdAt;@LastModifiedDateprivate LocalDateTime updatedAt;
}

枚举类型处理

@Entity
public class Order {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Enumerated(EnumType.STRING)private OrderStatus status;
}public enum OrderStatus {PENDING, PROCESSING, COMPLETED, CANCELLED
}

集合类型处理

@Entity
public class Student {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@ElementCollection@CollectionTable(name = "student_phone_numbers", joinColumns = @JoinColumn(name = "student_id"))private Set<String> phoneNumbers = new HashSet<>();
}

JSON类型处理

@Entity
public class Product {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Column(columnDefinition = "json")private String specifications;
}

多租户示例

@Entity
public class TenantAwareEntity {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Column(name = "tenant_id")private String tenantId;
}

软删除示例

@Entity
public class Customer {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Column(name = "is_deleted")private boolean deleted;
}

版本控制示例

@Entity
public class BankAccount {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Versionprivate Long version;
}

自定义ID生成器

@Entity
public class Invoice {@Id@GeneratedValue(generator = "uuid")@GenericGenerator(name = "uuid", strategy = "uuid2")private String id;
}

时间处理

@Entity
public class Event {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Temporal(TemporalType.TIMESTAMP)private Date startTime;
}

大对象处理

@Entity
public class Document {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Lobprivate byte[] content;
}

索引示例

@Entity
@Table(name = "employees", indexes = @Index(columnList = "department_id"))
public class Employee {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private Long 
http://www.lryc.cn/news/596694.html

相关文章:

  • Pycharm下载、安装及配置
  • 力扣 hot100 Day52
  • RabbitMQ03——面试题
  • 为什么要微调大语言模型
  • 论文笔记 | Beyond Pick-and-Place: Tackling Robotic Stacking of Diverse Shapes
  • 解决pip指令超时问题
  • 数据结构 堆(2)---堆的实现
  • LeetCode 热题100:42.接雨水
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(1)
  • 业务流逻辑如何搭建?为何橙武平台选用了 LogicFlow?​
  • day19 链表
  • 程序是如何生成的-以c语言为例
  • 信息学奥赛一本通 1553:【例 2】暗的连锁
  • 前端_CSS复习
  • 【React 入门系列】React 组件通讯与生命周期详解
  • 高可用架构模式——数据集群和数据分区
  • 单细胞转录组学+空间转录组的整合及思路
  • OneCode3.0 UI组件注解详解手册
  • 【vscode】vscode中python虚拟环境的创建
  • 回调地狱及解决方法
  • error C++17 or later compatible compiler is required to use ATen.
  • 【coze扣子】第1篇:coze快速入门
  • 威胁情报:Solana 开源机器人盗币分析
  • 以Java程序员角度理解MCP
  • 学习游戏制作记录(战斗系统简述以及击中效果)7.22
  • [c++11]std::function/bind
  • 基于SpringBoot+Vue的班级管理系统(Echarts图形化分析)
  • 101.对称二叉树
  • ubuntu 20.04 安装 cmake 3.26
  • VS Code 美化插件