Стратегия переопределения для Hibernate для модульных тестов - PullRequest
0 голосов
/ 08 мая 2018

У нас есть класс родительского объекта, который определяет стратегию для генерации идентификаторов с использованием класса.

@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class ParentEntity {
    @Id
    @GenericGenerator(name = "oid", strategy = "com.ourcompany.ourproject.jpa.util.OurIDGenerator")
    @GeneratedValue(generator = "oid")
    protected BigInteger id;

Я пытаюсь использовать H2 для моих тестов JUnit, которые частично поддерживают BitInteger (на самом деле он поддерживает long)

Я хочу изменить стратегию только в рамках моего модульного теста, чтобы получить значения, подходящие для длинных позиций. Я попытался смоделировать OurIDGenerator, а также метод hibernate, возвращающий класс OurIDGenerator без удачи. У кого-нибудь есть другие идеи?

1 Ответ

0 голосов
/ 08 мая 2018

Я думаю, что вы должны выбрать Long вместо BigInteger, потому что это лучший кандидат для представления @Id. Более того, тестирование с использованием типа Long и работающего приложения с BigInteger может дать разные результаты. Кроме того, база данных для тестов и приложения также должны быть одинаковыми.

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