У меня есть класс DatabaseInitializer, который вставляет некоторые данные через crudrepositories в мою базу данных.Теперь я добавил EntityListener, который должен обновить число в другой таблице (таблица 2), если дата объекта не присутствует в таблице 2. Для этого я пробую @Autowired с crudrepository для этого объекта.Но хранилище не подключено автоматически, оно всегда равно нулю.
EntityListener:
@Component
public class OrderDayIdListener {
@Autowired
private static OrderRepository orderRepository;
@Autowired
private OrderDayIdRepository orderDayIdRepository;
@PrePersist
private void incrementOrderIdInTable(Order order) {
LocalDate date = order.getDate();
OrderDayId orderDayIdObject = orderDayIdRepository.findByDate(date);
if(orderDayIdObject == null){
orderDayIdObject = new OrderDayId(1L, date);
} else {
orderDayIdObject.incrementId();
}
Long orderDayId = orderDayIdObject.getId();
order.setOrderDayId(orderDayId);
orderDayIdRepository.save(orderDayIdObject);
orderRepository.save(order);
}
}
Объект:
@EntityListeners(OrderDayIdListener.class)
@Data
@Entity
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@Column(name ="date")
private LocalDate date;
}