2016-08-16 7 views
0

Может ли кто-нибудь объяснить, как передать идентификатор из представления в контроллер? sourcesНе удается передать данные из поля зрения на контроллер

Проблема: при попытке изменить существующую задачу у меня есть новая задача. С новым измененным именем.

@RequestMapping("/edit/{id}") 
public String editTask(@PathVariable("id") Long id, Model model) { 
    model.addAttribute("task", taskService.getTaskById(id)); 
    model.addAttribute("tasks", taskService.listTasks()); 

    return "tasks"; 
} 

@RequestMapping(value = "/add", method = RequestMethod.POST) 
public String addTask(@ModelAttribute("task") Task task) { 
    if (task.getId() == null) { 
     taskService.addTask(task); 
    } else { 
     taskService.updateTask(task); 
    } 
    return "redirect:/"; 
} 

Так, в addTask()task.id всегда = null, но task.taskName не равно нулю. Что случилось с Long id? Возможно, это как-то влияет?

@Transactional 
@Entity(name = "tasks") 
public class Task { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long id; 

    @Basic 
    private String taskName; 
+0

Вы не должны испытывать какие-либо проблемы отображения 'типы Long' в Java. Но какой тип 'id' в базе данных? –

+0

Я не знаю, я сам не создаю стол. Hibernate делает. –

+0

'bigint (20)' показывает MySql Workbench –

ответ

1

Проблема была решена, когда я добавляю "= 0" в мою декларацию ID:

@Entity(name = "tasks") 
public class Task { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long id = 0L; 

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

  • Нет связанных вопросов^_^