小编Fai*_*zan的帖子

如何在Spring Boot应用程序中使用Spring事务配置kafka事务管理器

我在 Spring Boot 应用程序中使用 Kafka。我想在一笔交易中执行操作,如下所示。

listen(){
 produce()
 saveInDb()
} 
Run Code Online (Sandbox Code Playgroud)

operation(){
 saveInDB()
 produce()
}
Run Code Online (Sandbox Code Playgroud)

我已经使用以下配置启用了 Kafka 事务

spring:
  kafka:
    bootstrap-servers: localhost:19092,localhost:29092,localhost:39092
    producer:
      transaction-id-prefix: tx-
    consumer:
      enable-auto-commit: false
      isolation-level: read_committed
Run Code Online (Sandbox Code Playgroud)

并使用此配置

    @Bean
    public ProducerFactory<String, Object> producerFactory() {
        Map<String, Object> props = new HashMap<>();
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
        props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
        props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class);
        DefaultKafkaProducerFactory<String, Object> factory = new DefaultKafkaProducerFactory<>(props);
        factory.setTransactionIdPrefix("tx-");
        return factory;
    }

    @Bean
    public KafkaTransactionManager kafkaTransactionManager() {
        KafkaTransactionManager manager = new KafkaTransactionManager(producerFactory());
        return manager;
    }
    @Bean
    public KafkaTemplate<String, Object> kafkaTemplate() {
        return new KafkaTemplate<>(producerFactory()); …
Run Code Online (Sandbox Code Playgroud)

java apache-kafka spring-boot spring-kafka

4
推荐指数
1
解决办法
6728
查看次数

将 Varchar 列类型映射到实体 jpa 中的 Integer

我有一个旧表,其中列的类型之一是 varchar 但其中包含所有数字。我不想更改表中的数据类型。我想更改实体中的列数据类型。

之前是字符串,现在我将其更改为整数,并且增删改查操作工作正常。这是很好的做法还是有其他方法可以做到这一点?示例代码:

前:

@Entity
public class TestEntity{
    @Column(name = "Test")
    private String test;
}
Run Code Online (Sandbox Code Playgroud)

现在:

@Entity
public class TestEntity{
    @Column(name = "Test")
    private Integer test;
}
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa hibernate-mapping spring-data

3
推荐指数
1
解决办法
6199
查看次数