Будьте в спящем режиме и никакой PK

Существует 2 возможности:

  1. Подтверждение продолжительности , которое может не выполнить запрос, если он занял больше времени, чем определенный порог.

    enter image description here

    обратите внимание, что JMeter все еще будет ждать ответа, а если сервер не отвечает - JMeter может ждать вечно ]

  2. Response Timeout - живет на вкладке «Дополнительно» сэмплера HTTP-запроса (или даже лучше по умолчанию HTTP-запроса ) [1115 ]

    enter image description here

    , если сервер не начнет отвечать в течение заданного периода времени - JMeter помечает сэмплер (ы) как сбойные, не ожидая запроса завершение

Не стесняйтесь использовать любой из вышеперечисленных подходов или их комбинации.

52
задан abhi 1 June 2016 в 06:46
поделиться

2 ответа

Я обнаружил, что это невозможно. Так что неудача для тех, кто работает с унаследованными системами.

Если вы перепроектируете (создаете аннотированные сущности JPA из существующего соединения JDBC), таблица создаст два Java-класса, один Entity и с одним полем; id и один встраиваемый id, содержащий все столбцы из вашего отношения.

9
ответ дан 7 November 2019 в 09:13
поделиться

Ответ Роджера правильный. Чтобы уточнить, что имеется в виду (сначала я не понял этого и подумал, что это поможет):

Допустим, у вас есть таблица Foo как таковая:

TABLE Foo (
bar varchar(20),
bat varchar(20)
)

Обычно вы можете написать класс w / Аннотации к работе с этой таблицей:

// Technically, for this example, the @Table and @Column annotations 
// are not needed, but don't hurt. Use them if your column names 
// are different than the variable names.

@Entity
@Table(name = "FOO")
class Foo {

  private String bar;
  private String bat;


  @Column(name = "bar")
  public String getBar() {
   return bar;    
  }

  public void setBar(String bar) {
   this.bar = bar;    
  }

  @Column(name = "bat")
  public String getBat() {
   return bat;    
  }

  public void setBat(String bat) {
   this.bat = bat;    
  }

}

.. Но, черт возьми. В этой таблице нет ничего, что мы могли бы использовать в качестве идентификатора, и это устаревшая база данных, которую мы используем для [вставить важную бизнес-функцию]. Я не думаю, что они позволят мне начать изменять таблицы, чтобы я мог использовать спящий режим.

Вместо этого вы можете разделить объект на структуру, работающую в режиме гибернации, которая позволяет использовать всю строку в качестве ключа. (Естественно, это предполагает, что строка уникальна.)

Разделите объект Foo на два таким образом:

@Entity
@Table(name = "FOO")
class Foo {

  @Id
  private FooKey id;

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

  public void getId() {
    return id;
  }
}

и

@Embeddable
class FooKey implements Serializable {
  private String bar;
  private String bat;

  @Column(name = "bar")
  public String getBar() {
   return bar;    
  }

  public void setBar(String bar) {
   this.bar = bar;    
  }

  @Column(name = "bat")
  public String getBat() {
   return bat;    
  }

  public void setBat(String bat) {
   this.bat = bat;    
  }

}

.. И все должно быть. Hibernate будет использовать Embeddable ключ для своей требуемой идентификации, и вы можете позвонить как обычно:

Query fooQuery = getSession().createQuery("from Foo");

Надеюсь, это поможет новичкам в работе.

50
ответ дан 7 November 2019 в 09:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: