JPA разделители базы данных - PullRequest
3 голосов
/ 22 июля 2011

У меня есть два класса сущностей, называемых Пользователь и Группа, оба зарезервированных слова, которые должны быть разделены, чтобы база данных принимала их в виде таблиц. Аннотирование сущностей с помощью:

@Table(name = "\"USER\"")

делает свое дело, но я читал, что EclipseLink позволяет вам определять глобальные, которые автоматически разграничивают имена. Согласно http://dev.eclipse.org/mhonarc/lists/eclipselink-users/msg03434.html, вам необходимо включить в orm.xml следующее:

<persistence-unit-metadata>
    <persistence-unit-defaults>
        <delimited-identifiers/>
    </persistence-unit-defaults>
</persistence-unit-metadata>

Однако я аннотировал свои классы, и у меня нет orm.xml, только файл persistence.xml, где, согласно тому же источнику, я не могу включить это свойство. Могу ли я указать где-нибудь еще:

eclipselink.database.delimiters = true

когда фактический менеджер сущностей внедряется через @PersistenceContext?

Спасибо!

Обновление:

Спасибо, Джеймс. В итоге я получил orm.xml, и он отлично справился с задачей!

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                           xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd">
<persistence-unit-metadata>
    <persistence-unit-defaults>
        <delimited-identifiers/>
    </persistence-unit-defaults>
</persistence-unit-metadata>
</entity-mappings>

1 Ответ

4 голосов
/ 26 июля 2011

Вы должны быть в состоянии добавить orm.xml, он должен иметь только эту настройку, вы все равно можете определить все свои отображения в аннотациях.

...