#java #mysql #spring-boot #hibernate
Вопрос:
У меня есть этот класс сущностей, таблица создается, но я не могу заполнить ее данными.
@Entity @Table(name = "app_form_order_Id") public class Order implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "orderId") private Integer orderId; public Integer getOrderId() { return orderId; } public void setOrderId(Integer orderId) { this.orderId = orderId; } }
Теперь каждый раз, когда эта функция загрузки вызывается в контроллере, мы должны увеличивать данные в базе данных.
@RequestMapping(value = "/ajax/form/{formId}/load", method = RequestMethod.GET) public @ResponseBody AjaxResponseBean loadForm(HttpSession session, @PathVariable Integer formId, @RequestBody AjaxRequestBean request) { . . if (!"designer".equals(request.getData().getMode())){ Order order = new Order(); } . . }
Это класс обслуживания
public class OrderServiceImpl implements OrderService{ @Autowired private OrderDao orderDao; @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public Order addOrder(Order orderId) { return orderDao.addOrder(orderId); } }
Класс Dao
public class OrderDaoImpl implements OrderDao{ @Autowired private SessionFactory sessionFactory; @Override public Order addOrder(Order order) { sessionFactory.getCurrentSession().saveOrUpdate(order); return order; }
Кто-нибудь может помочь мне понять, как связать его с базой данных?
Комментарии:
1. Можете ли вы показать нам класс обслуживания?
2. И класс ДАО, пожалуйста. Пожалуйста, отредактируйте свой вопрос с помощью класса обслуживания и класса DAO
3. Взгляните, я отредактировал сообщение
Ответ №1:
Здесь вы совершили много ошибок.
- Вам не нужно возвращать заказ обратно (DAO и сервис).
- В контроллере вы создаете новый объект заказа. Это означает, что это пустой объект.
Так orderId
как он автоматически увеличивается, здесь я отредактировал его, чтобы добавить lastUpdate
.
Класс DAO
public class OrderDaoImpl implements OrderDao{ @Autowired private SessionFactory sessionFactory; @Override public void addOrder(Order order) { sessionFactory.getCurrentSession().saveOrUpdate(order); }
Класс обслуживания
public class OrderServiceImpl implements OrderService{ @Autowired private OrderDao orderDao; @Transactional(propagation = Propagation.REQUIRED, readOnly = false) public void addOrder(Order order) { orderDao.addOrder(order); } }
Контроллер
@RequestMapping(value = "/ajax/form/{formId}/load", method = RequestMethod.GET) public @ResponseBody AjaxResponseBean loadForm(HttpSession session, @PathVariable Integer formId, @RequestBody AjaxRequestBean request) { if (!"designer".equals(request.getData().getMode())){ Order order = new Order(); order.setLastUpdate(new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());); orderServiceImpl.addOrder(order); } }
Класс Бобовых
@Entity @Table(name = "app_form_order_Id") public class Order implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "orderId") private Integer orderId; @Column(name = "lastUpdate") private Date lastUpdate; public Integer getOrderId() { return orderId; } public void setOrderId(Integer orderId) { this.orderId = orderId; } public Date getLastUpdate() { return lastUpdate; } public void setLastUpdate(Date lastUpdate) { this.lastUpdate = lastUpdate; } }
Это примерно набранный код. Пожалуйста, попробуйте.