2013-09-19 4 views
0

Я разрабатываю небольшое приложение базы весны и спящего режима в java, и у моего приложения есть одно отношение к сотруднику и подразделению, у сотрудника есть одно подразделение, у подразделения есть много сотрудников , в этой маленькой ошибки приложения genarate как это `Ошибка сложения в спящем режиме с исключением

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Колонка 'unit_id' не может быть пустым

если позволяют нулевое значение для unit_id другие данные, вставленные с вне вставки unit_id

здесь мой Entity класс

@Entity 
@Table(name = "employee") 
public class Employee implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 

    @Column(name = "id") 
    private Integer id; 

    @Column(name = "epf") 
    private int epf; 

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

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

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

    @JoinColumn(name = "unit_id", referencedColumnName = "id") 
    @ManyToOne//(optional = false) 
    private Unit unit; 


@Entity 
@Table(name = "unit") 
public class Unit implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "id") 
    private Integer id; 

    @Column(name = "name") 

Мой контроллер класса

@RequestMapping(value="/employee.do", method=RequestMethod.POST) 
    public ModelAndView doActions(@ModelAttribute Employee emp, BindingResult result, @RequestParam String action, Map<String, Object> map){ 
     ModelAndView modelAndView = new ModelAndView("employee"); 

     Employee employeetResult = new Employee(); 
     switch(action.toLowerCase()){ //only in Java7 can put String in switch 
     case "add": 
      employeeService.addEmployee(emp); 
      employeetResult = emp; 
      break; 
     case "edit": 
      employeeService.updateEmployee(emp); 
      employeetResult = emp; 
      break; 
     case "delete": 
      employeeService.deleteEmployee(emp.getId()); 
      employeetResult = new Employee(); 
      break; 
     case "search": 
      Employee searchedStudent = employeeService.getEmployee(emp.getId()); 
      employeetResult = searchedStudent!=null ? searchedStudent : new Employee(); 
      break; 
     } 
     map.put("employee", employeetResult); 
     map.put("employeeList", employeeService.getAllEmployee()); 
     return modelAndView; 
    } 

Мой DAO Класс

> @Repository public class EmployeeDaoImp implements EmployeeDao { 
> 
> @Autowired private SessionFactory sessionfactory; 
>   public void addEmployee(Employee emp) {   sessionfactory.getCurrentSession().save(emp); 
> 
> } 
> 
>  public void updateEmployee(Employee emp) { 
>  sessionfactory.getCurrentSession().update(emp); 
> 
> } 
> 
>  public void deleteEmployee(int id) { 
>    sessionfactory.getCurrentSession().delete(getEmployee(id));  } 
> 
> Employee public Employee getEmployee(int empId) { 
>    return (Employee) sessionfactory.getCurrentSession().get(Employee.class,empId);  } 
> 
>  public List getAllEmployee() { 
>    return sessionfactory.getCurrentSession().createQuery("from Employee").list(); } 

ответ

0

@JoinColumn(name = "unit_id", referencedColumnName = "id") Использование вы определяете FK на столе блок, который не может быть пустым. Вам необходимо связать своего сотрудника с какой-то единицей, используя employee.setUnit(someUnit) в коде, прежде чем сохранять его в БД.

+0

уважаемый сэр, где мне нужно связать сотрудника с единичным объектом? внутри контроллера или DAO? – Dinesh

+0

Можете ли вы дать мне такие же направляющие линии .... – Dinesh

+0

Если я не пропустил ваш момент, когда вы создаете сотрудника, вы должны назначить его существующему устройству. – Morfic

0

идентификатор столбца не должен быть null.you получите лучший ответ от guruzon.com. Они включили подробное объяснение с примерами кодов и программ. Помимо hibernate, они объяснили технологию Hadoop с примерами программ, Sping, вопросы интервью

Смежные вопросы