我试图在jpa实体上使用@Consumed和camel。
这是我的路线:
<route id="incomingFileHandlerRoute">
<from
uri="jpa://com.menora.inbal.incomingFileHandler.Jpa.model.MessageToDB?consumer.nativeQuery=select
* from file_message where mstatus = 'TODO'&consumer.delay=5000&consumeDelete=false&consumeLockEntity=true&consumer.SkipLockedEntity=true" />
<to uri="bean:incomingFileHandler" />
</route>
我的实体:
@Entity
@Table(name = "file_message")
public class MessageToDB implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
private String uuid;
private String fileName;
private String body;
private String mstatus;
@Temporal(TemporalType.TIMESTAMP)
private Date mtimestamp;
@Consumed
public void updateMstatus() {
setMstatus(MessageStatus.DONE.name());
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getMstatus() {
return mstatus;
}
public void setMstatus(String mstatus) {
this.mstatus = mstatus;
}
public Date getMtimestamp() {
return mtimestamp;
}
public void setMtimestamp(Date mtimestamp) {
this.mtimestamp = mtimestamp;
}
}
我确实获得了来自db的结果的incomingFileHandler bean,但我没有获得消费方法updateMstatus。incomingFileHandler bean被连续调用,因为总是有来自db的结果
我在实体中使用camel jpa和注释@consumerd
和@preconsumerd
实现了类似的功能,但没有调用这些方法。
我查看了camel-jpa源代码,在JpaC中找到了这个onsumer.java:
protected DeleteHandler<Object> createPreDeleteHandler() {
// Look for @PreConsumed to allow custom callback before the Entity has been consumed
final Class<?> entityType = getEndpoint().getEntityType();
if (entityType != null) {
// Inspect the method(s) annotated with @PreConsumed
如果entityType
为null
实体类inst检查带有@consumered
和@presumerd
注释的方法。
解决方案:添加entityType=com。xx。yy。MessageToDB到您的URI以设置endpoint实体类型。
问题内容: 我有一个非常简单的Servlet和一个非常简单的HttpSessionListener: 我的方法从未被调用(没有日志输出),最终我在调用getSession()的那一行上得到一个 我尝试拨打电话时也没有问题,但存在相同的问题。 我不明白- 注释不足以调用我的侦听器吗?Eclipse甚至在下方将其显示为侦听器。 问题答案: 原来这是愚蠢的Eclipse问题之一… Project-> C
我正在使用一个简单的并每隔毫秒调用: 问题是虽然计时器在正确的时间结束,但是方法并没有每毫秒被调用一次。每次都少了几毫秒。 我使用日志检查它,发现的值在最后是597,而它应该是999,因为每次调用时它都会得到1。有精度误差吗?
我的从未被调用,即使我在inapp对话框中单击立即购买,logcat也不会打印任何内容。
我是写测试和使用Mockito的新手。我在Stackoverflow上阅读了类似的主题,并做了建议的更改,确保所考虑的类/接口/方法是开放的。 我试图跟踪这个 模仿构造函数注入的依赖项 这是我目前想出来的测试 但我一直得到的回应是 即使我在测试中没有提到这种方法,我也得到了这种反应。这是我的演示者注册方法。我已经改变了类/接口 同样地 这里是接口 感谢您的帮助。
问题:为什么从不调用? 我在xml配置中扩展了,如 MyEntityManagerFactoryBean MyInterceptor: 更新:[解释为什么自定义脏政策看起来不像我的方式] 我希望每次更改实体中的内容时更新时间戳,但除外。同时,应该是持久的,而不是暂时的(意味着导致实体变脏)。 由于我使用Spring事务和Hibernate模板,有一些细微差别: 1) 我无法在每个setter的末尾
我正在尝试使用SpringKafka将kafka与我的SpringBoot(v2.0.6版本)应用程序集成。现在我想要一个消费者和一个生产者。我让制作人工作得很好,我可以看到通过控制台消费者发送到主题的消息。我无法使用消费者代码,当Kafka主题中出现新消息时,它不会被调用。 这是我的Kafka配置类: 以下是我的pom依赖项: 以及消费者代码: 我正在我的计算机上运行kafka,正如我所说的——