package com.example.system.model;

import lombok.Data;

import javax.persistence.*;

/**
 * 专业实体类，对应数据库中的major_table表。
 */
@Data // Lombok库的注解，自动为类的字段生成getter、setter方法以及toString、equals、hashCode方法。
@Entity // JPA注解，标记这是一个JPA实体。
@Table(name = "major_table") // JPA注解，指定这个实体对应的数据库表名。
public class MajorTable {
    @Id // JPA注解，表明该字段为表的主键。
    @GeneratedValue(strategy = GenerationType.IDENTITY) // JPA注解，指定主键的生成策略为数据库的自增。
    @Column(name = "major_table_id") // JPA注解，指定映射到数据库表的哪个列。
    private Long majorTableId; // 专业ID，对应数据库中的major_table_id字段，为自增长主键。

    @Column(name = "major_table_name") // JPA注解，指定映射到数据库表的哪个列。
    private String majorTableName; // 专业名称，对应数据库中的major_table_name字段。

    @ManyToOne(fetch = FetchType.LAZY) // JPA注解，标明该字段表示多对一的关联关系。
    @JoinColumn(name = "college_id") // JPA注解，指定用于关联的外键列。
    private CollegeTable college; // 关联的学院实体，对应数据库中的college_id外键。
}
