我使用的是Spring Boot版本2.5.2、Spring数据jpa和MySQL数据库
CREATE TABLE Timesheet (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`tsYear` VARCHAR(4) NOT NULL,
`weekNumber` INT NOT NULL,
`startDate` DATE NOT NULL,
`endDate` DATE NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE TimesheetDays (
`id` INT NOT NULL AUTO_INCREMENT,
`timesheetId` BIGINT(20) NOT NULL,
`dayNumber` INT NOT NULL,
`dayDate` DATE NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `tsdTimesheetId`
FOREIGN KEY (`timesheetId`)
REFERENCES Timesheet (`id`)
);
@Entity
@Table(name = "timesheet")
public class Timesheet {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = "timesheet")
private List<TimesheetDay> days = null;
}
@Entity
@Table(name = "timesheetdays")
public class TimesheetDay {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne
private Timesheet timesheet;
}
当我尝试保存(时间表和时间表)时,对于时间表表,hibernate生成了错误的列。
[2m2021-11-05 18:29:44.147[0;39m[32mDEBUG[0;39m[35m15036[0;39m[2m---[0;39m[2m[nio-8080-exec-2][0;39m[36morg.hibernate.SQL[0;39m[2m:[0;39m插入到时间表日(日,日,timesheet_id)值 (?, ?, ?)[2m2021-11-05 18:29:44.147[0;39m[32mTRACE[0;39m[35m15036[0;39m[2m---[0;39m[2m[nio-8080-exec-2][0;39m[39m[0;39m[2m:[0;39m绑定参数[1]as[DATE]-[2017-12-20][2m2021-11-05 18:29:44.148[0;39m[32mTRACE[0;39m[35m15036[0;39m[2m---[0;39m[2m[nio-8080-exec-2][0;39m[2m[0;36mo.h.type.descriptor.sql.BasicBinder[36mo.h.type.descriptor.sql.BasicBinder:[0;39m绑定参数[2]as[INTEGER]-[1][2m2021-11-05 18:29:44.148[0;39m[32mTRACE[0;39m[35m15036[0;39m[2m---[0;39m[2m[nio-8080-exec-2][0;39m[36mo.h.type.descriptor.sql.BasicBinder[0;39m[2m:[33mWARN[0;39m[35m15036[0;39m[2m---[0;39m[2m[nio-8080-exec-2][0;39m[39m[0;39m[2m:[0;39m2m错误: 1054, SQLState: 42S22[2m2021-11-05 18:29:44.148[0;39m[31mERROR[0;39m[35m15036[0;39m[2m---[0;39m[2m[nio-8080-exec-2][0;36mo.h.engine.jdbc.spi.SqlExceptionHelper[39m[0;36mo.h.engine.jdbc.spi.SqlExceptionHelper[SQL:[0;timesheet_id字段列表中的未知列'39m'
由于生成的列名timesheet_id,因此它不起作用。如果生成的列名称变为时间表 ID,它将起作用。
请帮助解决此问题
您需要添加@JoinColumn
批注,以专门在“时间表天”
实体中提供列名称值。
@ManyToOne
@JoinColumn(name="timesheetid")
private Timesheet timesheet;
所以首先我为我不可靠的解释道歉。我的PHP技能需要认真改进。 错误消息表示“”未知。我知道这不是真的,因为当我创建一个名为“”的变量并回显前者时,我会得到编号。 以下是完整的错误消息: 致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42S22]:未找到列:C:\xampp\htdocs\loginregister master\addnew中的“字段列表”中的1054
我需要帮助。 使用方法时,在HQL中出现错误: 我猜他必须写而不是 可能是我做错了实体和关系吗? 2个实体-房屋和街道 ER模型: 餐桌街道 ID 名称 houses_id 桌房 ID 名称 我的类: 街道 房屋 我的道小鬼: StreetDaoImp: HouseDaoImpl: 错误:
即使我在表中设置了关系和定义了外键,我得到这个错误的原因是什么?
问题内容: 我需要帮助。 当我使用方法时,我在HQL中有错误: 我猜他一定要写代替 可能是我做错了实体和关系吗? 2个实体-房屋和街道 ER-model: Table Streets ID Name Houses_id Table Houses ID name My Classes: Street House My DAOIMP: StreetDAOImp: HouseDAOImpl: 错误: 问
问题内容: 我试图将值添加到phpmyadmin中的表中,但出现错误:“字段列表”中的未知列“ …”。 这是我的代码: 因此,当我在上一页的表单中输入fds作为名称时,我得到:“字段列表”中的未知列“ fds”。这以前从未发生过,我也不知道发生了什么。 问题答案: 我认为这 应该
我正在尝试使用Hibernate处理OneTo诸多关系。我正在使用@Temporal注释告诉hibernate有关Data字段的信息。我不确定为什么我在这里得到这个错误。看来日期格式有问题。请让我知道如何解决它。 顾客 订单 跑步者 错误