我在学春靴。我想引用MySQL数据并在Thymeleaf中显示MySQL数据。但是,我得到以下错误:
java.sql.sqlsyntaxerroreXception:“字段列表”中的未知列“employee0_.Department_Department_ID”。
另外,我想设置为从Employee类引用Department类。(@manytoone)但是我不确定当前的实体类和MySQL设置是否正确。
EmployeeController
package com.example.demo.controller;
@RequiredArgsConstructor
@Controller
public class EmployeeController {
private final EmployeeRepository emRepository;
private final DepartmentRepository deRepository;
@GetMapping("/")
public String showList(Model model) {
model.addAttribute("employeeList", emRepository.findAll());
return "index";
}
@GetMapping("/add")
public String addEmployee(@ModelAttribute Employee employee, Model model) {
model.addAttribute("departmentList", deRepository.findAll());
return "form";
}
@PostMapping("/save")
public String process(@Validated @ModelAttribute Employee employee, BindingResult result) {
if (result.hasErrors()) {
return "form";
}
emRepository.save(employee);
return "index";
}
@GetMapping("/edit/{id}")
public String editEmployee(@PathVariable Long id, Model model) {
model.addAttribute("employee", emRepository.findById(id));
return "form";
}
@GetMapping("/delete/{id}")
public String deleteEmployee(@PathVariable Long id) {
emRepository.deleteById(id);
return "redirect:/";
}
}
部门
package com.example.demo.model;
@NoArgsConstructor
@Getter
@Setter
@Entity
public class Department {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="department_id")
private Long department_id;
@NotBlank
@Size(max = 40)
@Column(name="department_name")
private String department_name;
public Department(String name) {
this.department_name = name;
}
}
package com.example.demo.model;
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
@Size(max = 40)
private String name;
@ManyToOne
private Department department;
}
package com.example.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.model.Department;
public interface DepartmentRepository extends JpaRepository<Department, Long> {
}
package com.example.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.model.Employee;
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Employee List</title>
</head>
<body>
<h3>List</h3>
<div th:if="${employeeList.size==0}">
<h3>no data</h3>
</div>
<table th:if="${employeeList.size()>0}">
<tr>
<th>id</th>
<th>name</th>
<th>Department</th>
<th></th>
</tr>
<tr th:each="employee:${employeeList}" th:object="${employee}">
<td th:text="${employee.id}"></td>
<td th:text="${employee.name}"></td>
<td th:text="${employee.department_name}"></td>
<td><form th:action="@{'/delete/'+${employee.id}}" method="post">
<button>delete</button>
</form></td>
<td><form th:action="@{'/edit/'+${employee.id}}" method="post">
<button>edit</button>
</form></td>
</tr>
</table>
<h3>
<a th:href="@{/add}">add</a>
</h3>
</body>
</html>
Application.Properties
spring.datasource.url=jdbc:mysql://localhost:3306/spring_crud
spring.datasource.username=spring_crud
spring.datasource.password=spring_crud
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.jpa.hibernate.ddl-auto=update
您可能希望尝试在Employee类中的部门数据下添加注释@joincolumn(name=“department_id”)
。或者更多细节,
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
@Size(max = 40)
private String name;
@ManyToOne(targetEntity = Department.class)
@JoinColumn(name = "department_id", referencedColumnName = "department_id")
private Department department;
}
另外,我建议不要在employee类(也在数据库中)上使用Department_Name
列。您可以在获取数据后使用getter获取属性。例如employee.getDepartment().getDepartment_name()
。
当我尝试发送一个GET请求到我的Spring Boot应用程序时,我有这个错误,我不知道我错过了什么! 我有了这个数据库,并在Eclipse中创建了JPA实体和关系,相应地为Spring Boot项目安装了STS(Spring Tool Suite)。 portata.java Ristorante.java Tipocucina.java 我错过了什么???
我试图通过在IntelliJ IDEA中使用spring boot和MySQL创建一个restful API。但我得到了以下错误。并且我尝试为student.java模型使用注释。但它没有成功。我在我的MySQL表中使用了camel大小写的列名。但是错误显示为。 java文件。 我的应用程序。属性如下所示。 我创建了一个数据库,名为,并创建了一个表,名为Student,如下所示。 那么这个错误的原
当我尝试在浏览器上运行URL以获取所有产品时,我得到了这个“SQLSyntaxErrorException:未知列‘product0\uReturn\u policy’in‘field list’”。 你看这里 浏览器还显示以下内容: 出现意外错误(类型=内部服务器错误,状态=500)。无法提取结果集;SQL[无];嵌套异常为org。冬眠例外SQLGrammarException:无法提取结果集
我试图使用SQL从java代码编写一个查询,以查找两个日期列之间的年份差异。我有一个表,其中包含列和,我想计算这两列之间的年数。 我的java代码块: 每当我试图运行代码时,我都会得到错误 我想要的是获得列和之间的年数。
问题内容: 我尝试运行以下代码。顺便说一句,我是python和sklearn的新手。 其中y是0和1的np.ndarray 我收到以下信息: 文件“ C:\ Anaconda3 \ lib \ site-packages \ sklearn \ linear_model \ logistic.py”,行> 1174,适合check_classification_targets(y) 文件“ C:\
问题内容: 我刚开始使用Laravel,却遇到以下错误: 未知列’updated_at’插入gebruikers(naam,wachtwoord,updated_at,created_at) 我知道错误是由您在迁移表时的时间戳列引起的,但我没有使用该字段。我遵循Laravel教程时曾经使用它,但是现在我正在制作(或尝试制作)自己的东西。即使不使用时间戳,我也会收到此错误。我似乎找不到使用它的地方。