Идентификатор экземпляра был изменен с х на х + 1 - PullRequest
0 голосов
/ 23 апреля 2019

У меня проблема с весенней загрузкой и спящим режимом. У меня есть сущность в таблице MySQL. Когда я звоню в сервис индивидуально, все отлично работает. Однако, когда я запускаю это с нагрузочным тестом, таким как jmeter, я получаю следующую ошибку:

org.hibernate.HibernateException: identifier of an instance of com.kafka.adapter.entity.TransactionEntity was altered from 4820 to 4821

Я пробовал несколько разных способов, чтобы получить первичный ключ безуспешно:

application.yml
server:
  port: 9027
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true
    username: --
    password: --
    driver-class-name: com.mysql.cj.jdbc.Driver
    tomcat:
      test-while-idle: true
      validation-query: SELECT 1
    initialization-mode: never
    platform: mysql
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL5Dialect
    hibernate:
      naming:
        physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
      ddl-auto: validate

TransactionEntity:

    @Entity
    @Table(name = "transactions")
    public class TransactionEntity {

        @Id
        @GeneratedValue(
                strategy= GenerationType.AUTO,
                generator="native"
            )
            @GenericGenerator(
                name = "native",
                strategy = "native"
            )
        private Long id;
        private String hogan_co;


    public Long getId() {
            return id;
        }

        public void setId(Long ID) {
            this.id = ID;
        }

    Service class
    public void transactionTranslation2() {
            startTimeDuration = System.currentTimeMillis();

            transactionRepository.save(te);
            endTimeDuration = System.currentTimeMillis();

        }

    public void findCategory() {

    te = new TransactionEntity();
            transactionTranslation2();
            duration = endTimeDuration - startTimeDuration;
    // System.out.println(duration * 0.001 + " seconds");

        }

Я ожидаю более 1 миллиона транзакций в час, поэтому он должен обрабатывать высокую нагрузку. Вы можете мне помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...