Entity
Entity
1. endorsement_details
-- sit_pi_group.endorsement_details definition
2. endorsement_pii_information_details
-- sit_pi_group.endorsement_pii_information_details definition
3. endorsement_address_details
-- sit_pi_group.endorsement_address_details definition
4. endorsement_nominee_details
-- sit_pi_group.endorsement_nominee_details definition
5. endorsement_appointee_details
-- sit_pi_group.endorsement_appointee_details definition
7. endorsement_address_details
-- sit_pi_group.endorsement_address_details definition
For above tables i have made an Entity classes in java springboot like below so
make it correct and cover all the minute details :
Below are my existing Entity Classes:
1. package com.star.gmc.endorsement.dao.entity;
import jakarta.persistence.*;
import lombok.Data;
import java.sql.Timestamp;
import java.util.List;
@Data
@Entity
@Table(name = "endorsement_details")
public class MainEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "endorsement_id")
private Long endorsementId;
@Column(name = "corporate_id")
private String corporateId;
@Column(name = "health_id")
private String healthId;
@Enumerated(EnumType.STRING)
@Column(name = "endorsement_category")
private EndorsementCategory endorsementCategory;
@Enumerated(EnumType.STRING)
@Column(name = "endorsement_type")
private EndorsementType endorsementType;
@Enumerated(EnumType.STRING)
@Column(name = "endorsement_frontend_status", nullable = false, columnDefinition
= "enum('PENDING','REJECTED','APPROVED')")
private EndorsementFrontendStatus endorsementFrontendStatus =
EndorsementFrontendStatus.PENDING;
@Enumerated(EnumType.STRING)
@Column(name = "endorsement_backend_status")
private EndorsementBackendStatus endorsementBackendStatus;
@Enumerated(EnumType.STRING)
@Column(name = "endorsement_raised_by", nullable = false, columnDefinition =
"enum('EMPLOYEE','EMPLOYER','BROKER')")
private EndorsementRaisedBy endorsementRaisedBy;
@Enumerated(EnumType.STRING)
@Column(name = "endorsement_action", columnDefinition =
"enum('PROGRESSED','UNPROCESSED')")
private EndorsementAction endorsementAction = EndorsementAction.UNPROCESSED;
@Column(name = "endorsement_processed_by")
private String endorsementProcessedBy;
@Column(name = "endorsement_processed_date")
private Timestamp endorsementProcessedDate;
@Column(name = "failure_reason")
private String failureReason;
@Column(name = "updated_by")
private String updatedBy;
@Column(name = "updated_date")
private Timestamp updatedDate;
@Enumerated(EnumType.STRING)
@Column(name = "in_excel", nullable = false, columnDefinition = "enum('Y','N')")
private InExcel inExcel = InExcel.N;
@Enumerated(EnumType.STRING)
@Column(name = "memberType", columnDefinition =
"enum('MAIN_MEMBER','DEPENDANT','OTHER')")
private MemberType memberType = MemberType.OTHER;
@Column(name = "transaction_id")
private String transactionId;
@OneToMany(mappedBy = "endorsementDetails")
private List<EndorsementNomineeDetailsEntity> nomineeList;
@OneToMany(mappedBy = "endorsementDetails")
private List<EndorsementDependentDetailsEntity> dependantList;
@OneToMany(mappedBy = "endorsementDetails")
private List<EndorsementBankDetailsEntity> bankDetailsList;
// Nested Enums
public enum EndorsementCategory {
FINANCIAL, NON_FINANCIAL
}
2. package com.star.gmc.endorsement.dao.entity;
import com.sun.tools.javac.Main;
import jakarta.persistence.*;
import lombok.Data;
import java.sql.Timestamp;
@Data
@Entity
@Table(name = "endorsement_nominee_details")
public class NomineeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "nominee_id")
private Long nomineeId;
@Column(name = "prefix")
private String prefix;
@Column(name = "policy_number")
private String policyNumber;
@Column(name = "first_name")
private String firstName;
@Column(name = "middle_name")
private String middleName;
@Column(name = "last_name")
private String lastName;
@Enumerated(EnumType.STRING)
@Column(name = "gender", columnDefinition = "enum('M','F','TG')")
private Gender gender;
@Column(name = "percentage")
private String percentage;
@Column(name = "relation_with_insured")
private String relationWithInsured;
@Column(name = "bank_name")
private String bankName;
@Column(name = "branch_name")
private String branchName;
@Column(name = "ifsc_code")
private String ifscCode;
@Column(name = "account_type")
private String accountType;
@Column(name = "pii_id")
private Long piiId;
@Column(name = "appointee_id")
private Long appointeeId;
@Column(name = "updated_by")
private String updatedBy;
@Column(name = "updated_date")
private Timestamp updatedDate;
@Enumerated(EnumType.STRING)
@Column(name = "is_active", columnDefinition = "enum('Y','N')")
private IsActive isActive = IsActive.Y;
@Column(name = "bank_details_id")
private Long bankDetailsId;
@Column(name = "endorsement_id")
private Long endorsementId;
@ManyToOne
@JoinColumn(name = "endorsement_id", insertable = false, updatable = false)
private MainEntity endorsementDetails;
// Enums
public enum Gender {
M, F, TG
}
3. package com.star.gmc.endorsement.dao.entity;
import jakarta.persistence.*;
import lombok.Data;
import java.sql.Timestamp;
@Data
@Entity
@Table(name = "endorsement_pii_information_details")
public class PiiEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "pii_id")
private Long piiId;
@Column(name = "mobile_number")
private String mobileNumber;
@Column(name = "email_id")
private String emailId;
@Column(name = "aadhaar_number")
private String aadhaarNumber;
@Column(name = "bank_account_number")
private String bankAccountNumber;
@Column(name = "pan_number")
private String panNumber;
@Column(name = "date_of_birth")
private String dateOfBirth;
@Column(name = "ckyc_no")
private String ckycNo;
@Column(name = "address")
private String address;
@Column(name = "city")
private String city;
@Column(name = "pincode")
private String pincode;
@Column(name = "updated_by")
private String updatedBy;
@Column(name = "updated_date")
private Timestamp updatedDate;
@Column(name = "state")
private String state;
@Enumerated(EnumType.STRING)
@Column(name = "is_active", columnDefinition = "enum('Y','N')")
private IsActive isActive;
// Enums
public enum IsActive {
Y, N
}
}
4. package com.star.gmc.endorsement.dao.entity;
import jakarta.persistence.*;
import lombok.Data;
import java.sql.Timestamp;
@Data
@Entity
@Table(name = "endorsement_address_details")
public class AddressEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "address_id")
private Long addressId;
@Enumerated(EnumType.STRING)
@Column(name = "address_type", nullable = false, columnDefinition =
"enum('ENDORSEMENT','NOMINEE','APPOINTEE')")
private AddressType addressType;
@Column(name = "updated_by")
private String updatedBy;
@Column(name = "updated_date")
private Timestamp updatedDate;
@ManyToOne
@JoinColumn(name = "endorsement_id", insertable = false, updatable = false)
private MainEntity endorsementDetails;
// Enums
public enum AddressType {
ENDORSEMENT, NOMINEE, APPOINTEE
}
}
5. package com.star.gmc.endorsement.dao.entity;
import jakarta.persistence.*;
import lombok.Data;
import java.sql.Timestamp;
@Data
@Entity
@Table(name = "endorsement_appointee_details")
public class AppointeeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "appointee_id")
private Long appointeeId;
@Column(name = "prefix")
private String prefix;
@Column(name = "first_name")
private String firstName;
@Column(name = "middle_name")
private String middleName;
@Column(name = "last_name")
private String lastName;
@Enumerated(EnumType.STRING)
@Column(name = "gender", columnDefinition = "enum('M','F','TG')")
private Gender gender;
@Column(name = "relation_with_nominee")
private String relationWithNominee;
@Column(name = "bank_name")
private String bankName;
@Column(name = "branch_name")
private String branchName;
@Column(name = "ifsc_code")
private String ifscCode;
@Column(name = "account_type")
private String accountType;
@Column(name = "nominee_id")
private Long nomineeId;
@Column(name = "pii_id")
private Long piiId;
@Column(name = "updated_by")
private String updatedBy;
@Column(name = "updated_date")
private Timestamp updatedDate;
@Enumerated(EnumType.STRING)
@Column(name = "is_active", columnDefinition = "enum('Y','N')")
private IsActive isActive = IsActive.Y;
@Column(name = "bank_details_id")
private Long bankDetailsId;
@ManyToOne
@JoinColumn(name = "nominee_id", insertable = false, updatable = false)
private NomineeEntity nominee;
// Enums
public enum Gender {
M, F, TG
}
6. package com.star.gmc.endorsement.dao.entity;
import jakarta.persistence.*;
import lombok.Data;
import java.sql.Timestamp;
@Data
@Entity
@Table(name = "endorsement_dependant_details")
public class DependantEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "dependant_id")
private Long dependantId;
@Column(name = "prefix")
private String prefix;
@Column(name = "first_name")
private String firstName;
@Column(name = "middle_name")
private String middleName;
@Column(name = "last_name")
private String lastName;
@Column(name = "sum_insured")
private String sumInsured;
@Column(name = "relation_with_insured")
private String relationWithInsured;
@Column(name = "updated_by")
private String updatedBy;
@Column(name = "updated_date")
private Timestamp updatedDate;
@Enumerated(EnumType.STRING)
@Column(name = "is_active", columnDefinition = "enum('Y','N')")
private IsActive isActive = IsActive.Y;
@Column(name = "endorsement_id")
private Long endorsementId;
@ManyToOne
@JoinColumn(name = "endorsement_id", insertable = false, updatable = false)
private MainEntity endorsementDetails;
// Enums
public enum IsActive {
Y, N
}
}
7. package com.star.gmc.endorsement.dao.entity;
import jakarta.persistence.*;
import lombok.Data;
import java.sql.Timestamp;
@Data
@Entity
@Table(name = "endorsement_bank_details")
public class BankEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "bank_id")
private Long bankId;
@Column(name = "bank_name")
private String bankName;
@Column(name = "ifsc_code")
private String ifscCode;
@Column(name = "first_name")
private String firstName;
@Column(name = "middle_name")
private String middleName;
@Column(name = "last_name")
private String lastName;
@Enumerated(EnumType.STRING)
@Column(name = "is_primary", columnDefinition = "enum('Y','N')")
private IsPrimary isPrimary;
@Column(name = "updated_by")
private String updatedBy;
@Column(name = "updated_date")
private Timestamp updatedDate;
@Enumerated(EnumType.STRING)
@Column(name = "is_active", columnDefinition = "enum('Y','N')")
private IsActive isActive = IsActive.Y;
@Column(name = "endorsement_id")
private Long endorsementId;
@ManyToOne
@JoinColumn(name = "endorsement_id", insertable = false, updatable = false)
private MainEntity endorsementDetails;
// Enums
public enum IsPrimary {
Y, N
}
Make the entities correct and also check the foreign keys, relationships in the
table and give me the Correct Entity Classes.
Please let me know if you need anything more details.