首页 > 解决方案 > 使用带有 Spring Boot 的 Apache camel 和 JPA 时无法更新表中的数据

问题描述

我正在尝试使用来自表 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());

在命名查询中,当我打印 System.out.println(exam.getStatus()); 时,我使用“SELECT e FROM Example e where e.status=2” // 输出 1 但同样没有在数据库中更新。

我正在使用 apache camel 2.22.0 和 Spring boot 2.0.4.RELEASE 。

标签: javaspringspring-bootspring-data-jpaapache-camel

解决方案


推荐阅读