我不明白如何使用camel-jpa。
我有一个实体:
@Entity
@Table(name = "task")
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Long id;
@Column(name = "task_uuid", nullable = false)
private UUID taskUuid;
@Column(name = "status", nullable = false)
private String status;
}
和存储库
@Repository
public interface TaskRepository extends JpaRepository<Task, Long> {
}
在这个类(class)中,我监听queue_1并将消息转换为传输到queue_2的格式
@Service
public class RoutingMessage extends RouteBuilder {
private final TaskRepository taskRepository;
private static final Logger log = LoggerFactory.getLogger(RoutingMessage.class);
@Autowired
public RoutingMessage(TaskRepository taskRepository) {
this.taskRepository = taskRepository;
}
@Override
public void configure() throws Exception {
from("jms:{{queue1}}")
.process(exchange -> {
String s = JsonUtil.convertJsonToXmlTaskEntity(String.valueOf(exchange.getIn().getBody()));
exchange.getIn().setBody(s);
})
.to(ExchangePattern.InOnly, "jms:{{queue2}}")
.log("send to queue2");
}
}
如何在configure()方法中向数据库添加插入实体(任务)? (我使用Spring boot)
最佳答案
对于单个 bean:
.to("jpa:your.package.and.entity.classname")
获取 Bean 列表:
.to("jpa:your.package.and.entity.classname?entityType=java.util.ArrayList")
我不知道你想保存在哪里,例如:
from("jms:{{queue1}}")
.process(exchange -> {
String s = JsonUtil.convertJsonToXmlTaskEntity(String.valueOf(exchange.getIn().getBody()));
exchange.getIn().setBody(s);
})
.to(ExchangePattern.InOnly, "jms:{{queue2}}")
.log("send to queue2");
.to("jpa:your.entity.package.Task")
您可以使用 JPA 组件执行更多操作,请参阅 docs和 Github repository
关于java - 如何使用apachecameljpa在数据库中插入一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55930977/