休眠中的关系1-1不起作用:未知列account0_date_of_firth



我想在hibante中创建1-1关系,但我收到一个错误:

java.sql.SQLSyntaxErrorException: Unknown column 'account0_.date_of_birth' in 'field list'

用户表:

@Entity
@Table(name = "user")
data class User(
@NonNull
@Column(nullable = false)
var login: String,
@NonNull
@Column(nullable = false)
var password: String,
@NonNull
@Column(nullable = false)
var email: String
) {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int? = 0
@OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = [CascadeType.ALL], orphanRemoval = true)
@Nullable
var bloodPressureInformationList: Set<BloodPressureInformation> = HashSet<BloodPressureInformation>()
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "account_id", referencedColumnName = "id")
var account: Account? = null
constructor() : this("", "", "")
}

账户表:

@Entity
@Table(name = "account")
data class Account(
@Column(nullable = false)
@NonNull
var firstName: String,
@Column(nullable = false)
@NonNull
var lastName: String,
@Column(nullable = false)
@NonNull
var dateOfBirth: String,
@Column(nullable = false)
@Enumerated(EnumType.STRING)
@NonNull
var sex: Sex) {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int? = 0
@OneToOne(mappedBy = "account", fetch = FetchType.LAZY, optional = false)
var user: User? = User()
}

Sql迁移代码:

Create Table user (
id BIGINT NOT NULL AUTO_INCREMENT,
login varchar(50),
password varchar (50),
email varchar(50),
CONSTRAINT user_pk PRIMARY KEY (id)
);
Create Table blood_pressure (
id BIGINT NOT NULL AUTO_INCREMENT,
systolic_pulse INTEGER NOT NULL,
diastolic_pulse INTEGER NOT NULL,
pulse INTEGER,
description varchar(250),
CONSTRAINT blood_pressure_pk PRIMARY KEY (id)
);
ALTER TABLE blood_pressure ADD COLUMN user_id BIGINT NOT NULL DEFAULT 1;
Create Table account (
id BIGINT NOT NULL AUTO_INCREMENT,
firstName varchar(50),
lastName varchar(50),
dateOfBirth varchar(50),
sex varchar(10),
CONSTRAINT account_pk PRIMARY KEY (id)
);
ALTER TABLE user ADD COLUMN account_id BIGINT NOT NULL DEFAULT 1;

你能告诉我如何解决这种关系吗?

修复您的拼写错误:dateOfBirth varchar(50)应该是date_of_birth varchar(50)。其他驼色大小写列也是如此。

最新更新