Java 在Spring Boot中使用Apache camel和JPA时无法更新表中的数据

Java 在Spring Boot中使用Apache camel和JPA时无法更新表中的数据,java,spring,spring-boot,spring-data-jpa,apache-camel,Java,Spring,Spring Boot,Spring Data Jpa,Apache Camel,我正在尝试使用来自表示例的消息,并尝试更新存储库中选定数据的状态,但数据未保存在表示例中。有人能帮我吗?有没有配置缺失 我的路由配置是: from("jpa://com.example.JPACamelBoot.entity.Example?consumer.namedQuery=selectQuery&consumer.delay=10000&consumeDelete=false") .process(myProcessor); 我的实体文件是: @Enti

我正在尝试使用来自表示例的消息,并尝试更新存储库中选定数据的状态,但数据未保存在表示例中。有人能帮我吗?有没有配置缺失

我的路由配置是:

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());
在命名查询中,我使用“从示例e中选择e,其中e.status=2” 当我打印的时候 System.out.println(exam.getStatus());//输出1,但未在数据库中获得更新


我使用的是ApacheCamel 2.22.0和Spring boot 2.0.4.RELEASE。

能否打开SQL语句的日志记录并发布所看到的内容。logging.level.org.hibernate.SQL=DEBUGorg.hibernate.SQL:选择example0.name作为名称1\u 0\u,example0\u.age作为年龄2\u 0\u,example0\u.location作为位置3\u 0\u,example0\u.status作为状态4\u 0\u来自示例example0\u,其中example0\u.status=2 org.hibernate.SQL:从示例中选择名称,其中name=?对于更新org.hibernate.SQL:从示例example0中选择example0.name作为name1\u0\u0,example0\u0.age作为age2\u0\u0,example0\u0.location作为location3\u0\u0,example0\u0.status作为status4\u0\u0?org.hibernate.SQL:更新示例集年龄=?,位置=?,状态=?其中name=?如果使用saveAndFlush而不是save,会发生什么情况?当我从main方法调用控制器类,然后从同一个repository.save()调用时,我的数据将保存到数据库中,但当我使用Apache camel并尝试执行更新或插入活动时,不会发生这种情况。不管怎样,在我的情况下,saveAndFlush也没有运气。在这方面有人能帮我吗。