mysql - '字段列表'中的Spring + Hibernate未知列'users0_.task_id'
问题描述
我是 Spring 和 Hibernate 的新手。我想在两个表用户和任务之间创建 OneToMany 关系。我认为这是我的代码中的愚蠢错误,但我找不到在哪里。这是我的 sql 代码:
CREATE TABLE IF NOT EXISTS `tms`.`task` (
`task_id` INT(11) NOT NULL AUTO_INCREMENT,
`date` DATETIME NULL DEFAULT NULL,
`hour` VARCHAR(45) NULL DEFAULT NULL,
`time` DOUBLE NULL DEFAULT NULL,
`task` VARCHAR(45) NULL DEFAULT NULL,
`description` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`task_id`))
ENGINE = InnoDB
AUTO_INCREMENT = 4
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci
CREATE TABLE IF NOT EXISTS `tms`.`user` (
`user_id` INT(11) NOT NULL,
`name` VARCHAR(45) NULL DEFAULT NULL,
`login` VARCHAR(45) NULL DEFAULT NULL,
`password` VARCHAR(45) NULL DEFAULT NULL,
PRIMARY KEY (`user_id`),
CONSTRAINT `fk_task`
FOREIGN KEY (`user_id`)
REFERENCES `tms`.`task` (`task_id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci
用户实体:
@Entity
@Table(name="user")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="user_id")
private int id;
/* other fields */
@ManyToOne
@JoinColumn(name="task_id")
private Task task;
任务实体:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="task_id")
private int id;
@Column(name="date")
private Date date;
@Column(name="hour")
private double hour;
@Column(name="description")
private String description;
@Column(name="time")
private double time;
@OneToMany(mappedBy="task")
private List<User> users;
我想从所有 USER 的数据库 TASK 对象中获取。无法理解数据库中存在“users0_.task_id”字段。我认为这是默认的休眠命名。请查看我的数据库,因为不确定。
这是我想从数据库中获取数据的代码:
道:
@Override
public Task getTask(int id) {
Session session = sessionFactory.getCurrentSession();
Task task = session.get(Task.class, id);
return task;
}
服务:
@Transactional
@Override
public Task getTask(int id) {
Task task = userDAO.getTask(id);
Hibernate.initialize(task.getUsers());
return task;
}
我的控制器:
Task task = userService.getTask(1);
和错误:
java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“users0_.task_id”
解决方案
推荐阅读
- react-native - React Native 状态管理问题 - useState 钩子何时加载?
- kubernetes - Openshift/Kubernetes - oc 修补数组的所有元素
- html - AMP:amp-list 中的 mustache 模板循环变量?
- html - 不间断的破折号,而不是连字符
- r - 将一行熔化/拆分为两行,使用原始行中的两个列值,其余部分保持不变
- java - 为什么在 Apache Pulsar 中使用 MessageListeners 而不仅仅是 Consumer.receive()?
- python - Adafruit MM8451 & Raspberry PI SPI 错误 121 与 Buster
- amazon-cloudformation - AWS CloudFormation 堆栈升级失败并显示“无法满足 100% MinSuccessfulInstancesPercent 要求”
- flutter - Flutter 文档选择器
- sql - Oracle:使用 where 子句选择重复项?