это мой html код, мой код всегда сохраняет null в столбцах внешнего ключа, пожалуйста, помогите и попробуйте исправить мой код, пожалуйста
<div th:if="${mode == 'MODE_NEW'}">
<div class="container">
<div class="row">
<form autocomplete="off"
th:action="@{/admin/user-task/save}"
th:object="${user_task}" method="post" class="form-horizontal"
role="form">
<fieldset>
<!-- Form Name -->
<legend>User Task Assignment</legend>
<!-- Text input-->
<input type="hidden" name="id" th:field="${user_task.id}" />
<div class="form-group">
<label class="col-md-4 control-label">User</label>
<div class="col-md-4 text-left">
<select class="selectpicker" data-live-search="true"
title="Select User" name="user" tabindex="-98">
<option th:each="user: ${users}" th:value="${user.id}"
th:text="${user.name}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Task</label>
<div class="col-md-4 text-left">
<select class="selectpicker" data-live-search="true"
title="Select Task" name="task" tabindex="-98">
<option th:each="task: ${tasks}" th:value="${task.id}"
th:text="${task.name}"></option>
</select>
</div>
</div>
<!-- Button (Double) -->
<div class="form-group">
<label class="col-md-4 control-label" for="submitButton"></label>
<div class="col-md-8">
<button type="submit" id="submitButton" name="submitButton"
class="btn btn-success">Save</button>
<button type="button" class="btn btn-inverse"
onclick="window.history.back()">Cancel</button>
</div>
</div>
</fieldset>
</form>
</div>
</div>
</div>
это мой контроллер, где я пробовал все, но это не сохранить напрямую, пожалуйста, предложите в моем коде
@RequestMapping(value = "/save", method = RequestMethod.POST)
public ModelAndView saveUserTask(@Valid UserTask userTask,BindingResult bindingResult) throws UserTaskException {
ModelAndView modelAndView = new ModelAndView("redirect:/admin/user-task/all");
modelAndView.addObject("auth", getUser());
modelAndView.addObject("control", getUser().getRole().getRole());
User user=new User();
user.getUserTask();
Task task =new Task();
task.getUserTask();
userTask.setTask(task);
userTask.setUser(user);
userTaskService.save(userTask);
return modelAndView;
}
это мой интерфейс dao, в котором вызывается метод
public interface UserTaskDao {
public void save(UserTask user_task) throws UserTaskException;
}
это мой DaoImpl, в котором я использую сеанс гибернации
@Override
public void save(UserTask user_task) throws UserTaskException {
Session session = this.sessionFactory.getCurrentSession();
try {
session.save(user_task);
}catch(HibernateException e) {
throw new UserTaskException("Error while saving user Task id and role id: "+e);
}
}
это мой класс обслуживания
@Service
@Transactional
public class UserTaskService {
@Autowired
private final UserTaskDao userTaskDao; //userTaskDao
public UserTaskService(UserTaskDao userTaskDao) {
this.userTaskDao = userTaskDao;
}
public void save(UserTask user_task) throws UserTaskException{
userTaskDao.save(user_task);
}
}
My UserTask. java Class
@Entity(name="user_task")
public class UserTask implements Serializable {
@Id
@GeneratedValue
private int id;
@ManyToOne
@JoinColumn(name = "USER_ID", referencedColumnName = "id")
private User user;
@ManyToOne
@JoinColumn(name = "TASK_ID", referencedColumnName = "id")
private Task task;
public UserTask(UserTaskBean userTaskBean) {
}
public UserTask() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Task getTask() {
return task;
}
public void setTask(Task task) {
this.task = task;
}
}
In my User. java class
@OneToMany(mappedBy = "user")
private Set<UserTask> userTask = new HashSet<UserTask>();
In моя задача. java класс
@OneToMany(mappedBy = "task")
private Set<UserTask> userTask = new HashSet<UserTask>();