Я пытаюсь использовать сообщение из таблицы Example и пытаюсь обновить состояние выбранных данных в репозитории, но данные не сохраняются в Table Example. Может кто-нибудь помочь мне в этом, там какая-то конфигурация отсутствует?
Моя конфигурация маршрутизации:
from("jpa://com.example.JPACamelBoot.entity.Example?consumer.namedQuery=selectQuery&consumer.delay=10000&consumeDelete=false")
.process(myProcessor);
Файл моей сущности:
@Entity
@Table(name="EXAMPLE")
@NamedQuery(name="selectQuery", query="SELECT e FROM Example e where e.status=2")
public class Example implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="NAME")
private String name;
@Column(name="AGE")
private Integer age;
@Column(name="LOCATION")
private String location;
@Column(name="STATUS")
private Integer status;
В MyProcessor.java я выполняю функцию обновления, как указано ниже:
@Autowired
private ExampleRepository exampleRepository;
public void process(Exchange exchange) throws Exception {
try {
Message in = exchange.getIn();
Example example=in.getBody(Example.class);
Example exm= null;
exm=exampleRepository.findById(example.getName()).orElse(null);
exm.setStatus(1);
Example exam =exampleRepository.save(exm);
System.out.println(exam.getStatus());
Как и в именованном запросе, я использую «SELECT e FROM Example e, где e.status = 2»
Когда я печатаю
System.out.println (exam.getStatus ()); // выводим 1, но то же самое не получает обновление в базе данных.
Я использую Apache Camel 2.22.0 и Spring boot 2.0.4.RELEASE.