Единица сохраняемости JPA по умолчанию

Я получаю исключение «В этом развертывании нет модуля сохраняемости по умолчанию». могу ли я как-то пометить единицу по умолчанию? (у меня есть только одна единица персистентности, поэтому я бы не стал называть ее по имени)


person Community    schedule 16.12.2008    source источник


Ответы (2)


Нет, вы должны называть PU по имени.

person Jim Barrows    schedule 16.12.2008
comment
Вам не нужно называть PU по имени, если вы делаете инъекцию. - person Archimedes Trajano; 06.09.2011

Вероятно, вы делаете это с помощью кода, а не позволяете контейнеру управлять им. В этом случае вы должны указать по имени.

В моем коде модульного теста есть этот блок кода для этого.

@Before
public void createEntityManagerFactory() throws IOException {
    final Properties p = new Properties();
    p.load(getClass().getResourceAsStream("/inmemory.properties"));
    emf = Persistence.createEntityManagerFactory("default", p);
}

Однако мой код приложения выглядит так.

/**
 * Injected persistence context.
 */
@PersistenceContext
private EntityManager em;
person Archimedes Trajano    schedule 06.09.2011