java - 如何使用apachecameljpa在数据库中插入一条记录?

标签 java spring-data-jpa apache-camel

我不明白如何使用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 组件执行更多操作,请参阅 docsGithub repository

关于java - 如何使用apachecameljpa在数据库中插入一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55930977/

相关文章:

java - 如何以编程方式更新具有序列的复杂类型并将其添加到 XSD

java - 使用 JDBC 执行查询的 executeUpdate 时出现空指针异常

java - 为什么 setMaximumFractionDigits 不包含某些数字

java - 如何使用相同的自定义 id 生成器统一多个实体的 @GenericGenerator 声明?

java - 在 JBoss EAP 6.4 上的 JBoss Fuse 6.3 中使用 Camel 访问环境属性时出错

java - 注入(inject)单例 bean 时,Spring 的 @RequestScope 会自动处理代理吗?

java - 使用 Spring 连接远程数据库时出现访问被拒绝错误

spring-boot - 具有多个数据库和 application.yml 的 JPA

java - Apache Camel "No component found with scheme: stream"

java - org.apache.camel.NoSuchLanguageException : No language could be found for: simple