Код: Выделить всё
@Entity
@Table(name = "user")
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class User extends Auditable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer id;
@Column(name = "name")
String name;
@Column(name = "email", nullable = false)
@Email
String email;
@Column(name = "user_type", nullable = false)
@Enumerated(EnumType.STRING)
UserType userType;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "address_id")
@ToString.Exclude
Address address;
@Column(name = "active", nullable = false)
Boolean active = false;
@Column(name = "phone_number", nullable = false)
@Pattern(regexp = "^\\d{10}$", message = "Phone number must be exactly 10 digits")
String phoneNumber;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "company_id")
@ToString.Exclude
CompanyInformation companyInformation;
@Column(name = "hashed_password", nullable = false)
String hashedPassword;
@Column(name = "kyc_done")
Boolean kycDone = false;
}
Код: Выделить всё
@Entity
@Table(name = "address")
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class Address extends Auditable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer id;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id", nullable = false)
@ToString.Exclude
User user;
@Column(name = "name", nullable = false)
String addressName;
@Column(name = "address1", nullable = false)
String address1;
@Column(name = "address2", nullable = false)
String address2;
@Column(name = "zipCode", nullable = false)
String zipCode;
@Column(name = "country", nullable = false)
@Enumerated(EnumType.STRING)
Country country;
@Column(name = "state", nullable = false)
@Enumerated(EnumType.STRING)
State state;
@Column(name = "email")
String email;
}
@Entity
@Table(name = "company_info")
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class CompanyInformation extends Auditable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer id;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
@ToString.Exclude
User user;
@Column(name = "company_name", nullable = false)
String companyName;
@Column(name = "company_type", nullable = false)
String companyType;
@Column(name = "company_gst")
String gstNumber;
@Column(name = "company_pan", nullable = false)
String panCardNumber;
}
Код: Выделить всё
2024-11-26 01:28:11.399 ERROR 97993 --- [nio-9090-exec-1] o.h.engine.jdbc.spi.SqlExceptionHelper : Column 'user_id' cannot be null
2024-11-26 01:28:11.608 ERROR 97993 --- [nio-9090-exec-1] c.f.c.exception.CustomExceptionHandler : exception occurred: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement
Я новичок в Spring . Что мне попробовать дальше?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-entity