SpringDemo/src/main/java/com/example/springdemo/entities/Users.java

43 lines
1.4 KiB
Java
Raw Normal View History

2023-10-06 15:31:42 +00:00
package com.example.springdemo.entities;
2023-11-06 10:39:58 +00:00
import com.example.springdemo.entities.RBAC.Roles;
2023-10-25 10:10:52 +00:00
import jakarta.persistence.*;
2023-10-06 15:31:42 +00:00
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
2023-11-10 08:48:23 +00:00
import java.util.ArrayList;
2023-11-05 15:16:30 +00:00
import java.util.List;
2023-10-06 15:31:42 +00:00
//用户类
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
2023-10-07 10:51:01 +00:00
@Entity
@Table(name = "Users")
2023-10-06 15:31:42 +00:00
public class Users {
2023-10-07 10:51:01 +00:00
@Id
2023-10-25 10:10:52 +00:00
@GeneratedValue(strategy = GenerationType.IDENTITY)
2023-11-06 08:56:22 +00:00
private Long id;//主键用户ID
2023-10-06 15:31:42 +00:00
private String name;//用户姓名
2023-11-05 15:16:30 +00:00
private String sex;//用户性别
2023-10-07 10:51:01 +00:00
@Column(name = "phoneNumber")
2023-10-06 15:31:42 +00:00
private String phoneNumber;//用户联系方式
private String address;//家庭住址
2023-11-05 15:16:30 +00:00
2023-11-10 08:48:23 +00:00
//一个用户可能会有多个订单,关系是一对多
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "users_orders",
joinColumns = {@JoinColumn(name = "usersID", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "ordersID", referencedColumnName = "id")})
2023-11-10 08:48:23 +00:00
private List<Orders> orders = new ArrayList<>();//订单
2023-11-06 10:39:58 +00:00
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "users_roles",
joinColumns = {@JoinColumn(name = "usersID", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "rolesID", referencedColumnName = "id")})
2023-11-06 10:39:58 +00:00
private Roles roles;//RBAC角色
2023-10-06 15:31:42 +00:00
}