Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring/Hibernate CRUD不工作(MySQL)_Java_Mysql_Spring_Hibernate_Spring Mvc - Fatal编程技术网

Java Spring/Hibernate CRUD不工作(MySQL)

Java Spring/Hibernate CRUD不工作(MySQL),java,mysql,spring,hibernate,spring-mvc,Java,Mysql,Spring,Hibernate,Spring Mvc,我正在尝试制作一个简单的Spring/Hibernate/MySQL CRUD,但它不起作用:/I得到: HTTP状态500-内部服务器错误 类型异常报告 消息:请求处理失败;嵌套异常是 java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException:员工不是 映射[根据姓氏从员工订单] 描述:服务器遇到意外情况,导致 阻止它满足请求 这是我的密码: Employee.java pac

我正在尝试制作一个简单的Spring/Hibernate/MySQL CRUD,但它不起作用:/I得到:

HTTP状态500-内部服务器错误

类型异常报告

消息:请求处理失败;嵌套异常是 java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException:员工不是 映射[根据姓氏从员工订单]

描述:服务器遇到意外情况,导致 阻止它满足请求

这是我的密码:

Employee.java

package com.employeemanager.entity;

import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="employees")
public class Employee {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private int id;

@Column(name="first_name")
private String firstName;

@Column(name="last_name")
private String lastName;

@Column(name="email")
private String email;

@Column(name="username")
private String username;

@Column(name="password")
private String password;


public Employee(){

}
public Employee(String firstName){

}
public Employee(String firstName,Set<Project> projects){
    this.firstName=firstName;
    this.projects=projects;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getFirstName() {
    return firstName;
}

public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public String getLastName() {
    return lastName;
}

public void setLastName(String lastName) {
    this.lastName = lastName;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}


}
package com.employeemanager.entity;
导入java.util.Set;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.GeneratedValue;
导入javax.persistence.GenerationType;
导入javax.persistence.Id;
导入javax.persistence.Table;
@实体
@表(name=“employees”)
公营雇员{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”)
私有int-id;
@列(name=“first_name”)
私有字符串名;
@列(name=“last_name”)
私有字符串lastName;
@列(name=“email”)
私人字符串电子邮件;
@列(name=“username”)
私有字符串用户名;
@列(name=“password”)
私有字符串密码;
公职人员(){
}
公共雇员(字符串名){
}
公共雇员(字符串名字,集合项目){
this.firstName=firstName;
这个。项目=项目;
}
公共int getId(){
返回id;
}
公共无效集合id(内部id){
this.id=id;
}
公共字符串getFirstName(){
返回名字;
}
public void setFirstName(字符串firstName){
this.firstName=firstName;
}
公共字符串getLastName(){
返回姓氏;
}
public void setLastName(字符串lastName){
this.lastName=lastName;
}
公共字符串getEmail(){
回复邮件;
}
公用电子邮件(字符串电子邮件){
this.email=电子邮件;
}
公共字符串getUsername(){
返回用户名;
}
public void setUsername(字符串用户名){
this.username=用户名;
}
公共字符串getPassword(){
返回密码;
}
public void setPassword(字符串密码){
this.password=密码;
}
}
EmployeeDAO.java

package com.employeemanager.dao;

import java.util.List;

import com.employeemanager.entity.Employee;

public interface EmployeeDAO {

public List<Employee> getEmployees();

public void saveEmployee(Employee theEmployee);

public Employee getEmployee(int theId);

public void deleteEmployee(int theId);


}
package com.employeemanager.dao;
导入java.util.List;
导入com.employeemanager.entity.Employee;
公共界面EmployeeDAO{
公共列表getEmployees();
公共作废保存员工(员工-员工);
公共雇员getEmployee(inttheid);
公共雇员(int theId);
}
EmployeeDAOImpl.java

package com.employeemanager.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;


import com.employeemanager.entity.Employee;

@Repository
public class EmployeeDAOImpl implements EmployeeDAO {


@Autowired
private SessionFactory sessionFactory;


@Override
public List<Employee> getEmployees() {

    Session currentSession=sessionFactory.getCurrentSession();
    List<Employee> employeeList=
            currentSession.createQuery("from employees order by 
last_name").getResultList();
    return employeeList;
}

@Override
public void saveEmployee(Employee theEmployee) {

    Session currentSession=sessionFactory.getCurrentSession();
    currentSession.saveOrUpdate(theEmployee);

}


@Override
public Employee getEmployee(int theId) {

Session currentSession=sessionFactory.getCurrentSession();

Employee theEmployee=currentSession.get(Employee.class, theId);

return theEmployee;

}


@Override
public void deleteEmployee(int theId) {

    Session currentSession=sessionFactory.getCurrentSession();

    Employee employee=((Employee) 
currentSession.load(Employee.class,theId));
    if(null!=employee){
         this.sessionFactory.getCurrentSession().delete(employee);
    }
}

}
package com.employeemanager.dao;
导入java.util.List;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Repository;
导入com.employeemanager.entity.Employee;
@存储库
公共类EmployeeDAOImpl实现EmployeeDAO{
@自动连线
私人会话工厂会话工厂;
@凌驾
公开名单{
会话currentSession=sessionFactory.getCurrentSession();
雇员名单=
currentSession.createQuery(“来自员工订单依据
last_name”).getResultList();
返回员工名单;
}
@凌驾
public void saveEmployee(Employee-theEmployee){
会话currentSession=sessionFactory.getCurrentSession();
当前会话。保存或更新(员工);
}
@凌驾
公共雇员getEmployee(int-theId){
会话currentSession=sessionFactory.getCurrentSession();
Employee theEmployee=currentSession.get(Employee.class,theId);
归还员工;
}
@凌驾
公共无效删除员工(内部ID){
会话currentSession=sessionFactory.getCurrentSession();
雇员=((雇员)
currentSession.load(Employee.class,theId));
如果(空!=员工){
this.sessionFactory.getCurrentSession().delete(employee);
}
}
}
EmployeeService.java

package com.employeemanager.service;

import java.util.List;

import com.employeemanager.entity.Employee;

public interface EmployeeService {

public List<Employee> getEmployees();

public void saveEmployee(Employee theEmployee);

public Employee getEmployee(int theId);

public void deleteEmployee(int theId);


}
package com.employeemanager.service;
导入java.util.List;
导入com.employeemanager.entity.Employee;
公共接口EmployeeService{
公共列表getEmployees();
公共作废保存员工(员工-员工);
公共雇员getEmployee(inttheid);
公共雇员(int theId);
}
EmployeeServiceImpl.java

package com.employeemanager.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.employeemanager.entity.Employee;
import com.employeemanager.dao.EmployeeDAO;

@Service
public class EmployeeServiceImpl implements EmployeeService {

@Autowired
private EmployeeDAO employeeDAO;

@Override
@Transactional
public List<Employee> getEmployees() {

    return employeeDAO.getEmployees();
}

@Override
@Transactional
public void saveEmployee(Employee theEmployee) {

    employeeDAO.saveEmployee(theEmployee);
}

@Override
@Transactional
public Employee getEmployee(int theId) {

    return employeeDAO.getEmployee(theId);
}

@Override
@Transactional
public void deleteEmployee(int theId) {

    employeeDAO.deleteEmployee(theId);

}

}
package com.employeemanager.service;
导入java.util.List;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Service;
导入org.springframework.transaction.annotation.Transactional;
导入com.employeemanager.entity.Employee;
导入com.employeemanager.dao.EmployeeDAO;
@服务
公共类EmployeeServiceImpl实现EmployeeService{
@自动连线
私人雇员道雇员道;
@凌驾
@交易的
公开名单{
返回employeeDAO.getEmployees();
}
@凌驾
@交易的
public void saveEmployee(Employee-theEmployee){
雇员DAO.saveEmployee(雇员);
}
@凌驾
@交易的
公共雇员getEmployee(int-theId){
返回employeeDAO.getEmployee(theId);
}
@凌驾
@交易的
公共无效删除员工(内部ID){
employeeDAO.deleteEmployee(theId);
}
}
EmployeeController.java

package com.employeemanager.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.employeemanager.entity.Employee;
import com.employeemanager.entity.Project;
import com.employeemanager.service.EmployeeService;
import com.employeemanager.service.ProjectService;

@Controller
@RequestMapping("/employee")
public class EmployeeController {

@Autowired
private EmployeeService employeeService;

@Autowired
private ProjectService projectService;

@GetMapping("/list")
public String listEmployees(Model theModel){


    List<Employee> theEmployees=employeeService.getEmployees();

    theModel.addAttribute("employees",theEmployees);

    return"employees-list";
}

@GetMapping("/addEmployeeForm")
public String addEmployeeForm(Model theModel){

    Employee theEmployee=new Employee();
    List<Project> theProjects=projectService.getProjects();
    theModel.addAttribute("projects",theProjects);

    theModel.addAttribute("employee",theEmployee);

    return"employee-form";
}

@PostMapping("/saveEmployee")
public String saveEmployee(@ModelAttribute("employee") Employee theEmployee)
{

    employeeService.saveEmployee(theEmployee);

    return "redirect:/employee/list";
}

@GetMapping("/updateEmployeeForm")
public String updateEmployeeForm(@RequestParam("employeeId") int theId,
                                Model theModel){

    Employee theEmployee=employeeService.getEmployee(theId);
    theModel.addAttribute("employee",theEmployee);

    return"employee-form";
}

@GetMapping("/deleteEmployee")
public String deleteEmployee(@RequestParam("employeeId") int theId){
    employeeService.deleteEmployee(theId);
    return"redirect:/employee/list";
}

}
package com.employeemanager.controller;
导入java.util.List;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Controller;
导入org.springframework.ui.Model;
导入org.springframework.web.bind.annotation.GetMapping;
导入org.springframework.web.bind.annotation.ModelAttribute;
导入org.springframework.web.bind.annotation.PostMapping;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RequestParam;
导入com.employeemanager.entity.Employee;
导入com.employeemanager.entity.Project;
导入com.employeemanager.service.EmployeeService;
导入com.employeemanager.service.ProjectService;
@控制器
@请求映射(“/employee”)
公共类EmployeeController{
@自动连线
私人雇员服务;
@自动连线
私人工程
@Repository
public class EmployeeDAOImpl implements EmployeeDAO {

    @Override
    public List<Employee> getEmployees() {
        Session currentSession = sessionFactory.getCurrentSession();
        return currentSession.createQuery("from Employee order by last_name").getResultList();
    }
}
from employees order by last_name
from Employee e order by e.lastName
@Override
public List<Employee> getEmployees() {

Session currentSession=sessionFactory.getCurrentSession();
List<Employee> employeeList=
        currentSession.createQuery("from employees order by 
last_name").getResultList();
return employeeList;
}
@Override
public List<Employee> getEmployees() {

Session currentSession=sessionFactory.getCurrentSession();
List<Employee> employeeList=
        currentSession.createQuery("from Employee order by 
lastName").getResultList();
return employeeList;
}