2017-02-07 5 views
2

Я не вижу никакой возможности сделать что-то вроде: orm.xml файл, из JPA2.JPA orm.xml поддержка индекса базы данных

<basic name="developer"> 
    <index /> 
    <column name="developer"/> 
</basic> 

Я вижу, что hbm.xml файлы, которые предлагает это, но мне интересно, если JPA 2,0 действительно не хватает этой функции в рамках стандарта.

так что я могу избежать превращения в hbm.xml файлы ...

ответ

0

JPA 2.0 table типа XSD выглядит следующим образом:

<xsd:complexType name="table"> 
    <xsd:sequence> 
     <xsd:element name="unique-constraint" type="orm:unique-constraint" 
        minOccurs="0" maxOccurs="unbounded"/> 
    </xsd:sequence> 
    <xsd:attribute name="name" type="xsd:string"/> 
    <xsd:attribute name="catalog" type="xsd:string"/> 
    <xsd:attribute name="schema" type="xsd:string"/> 
</xsd:complexType> 

В то время как JPA 2.1 выглядит следующим образом:

<xsd:complexType name="table"> 
    <xsd:sequence> 
     <xsd:element name="unique-constraint" type="orm:unique-constraint" 
        minOccurs="0" maxOccurs="unbounded"/> 
     <xsd:element name="index" type="orm:index" 
        minOccurs="0" maxOccurs="unbounded"/> 
    </xsd:sequence> 
    <xsd:attribute name="name" type="xsd:string"/> 
    <xsd:attribute name="catalog" type="xsd:string"/> 
    <xsd:attribute name="schema" type="xsd:string"/> 
</xsd:complexType> 

Таким образом, у вас нет атрибута index по типу table, который прост ided на уровне каждого субъекта:

<entity class="Post" access="FIELD"> 
    <table> 
     <index column-list="first_name,last_name" name="name_idx" unique="true"/> 
    </table> 
    <attributes> 
     ... 
    </attributes> 
</entity> 

Однако, вам не нужно использовать hbm2ddl в приложении. Только use Flyway instead and you are way better off.

Смежные вопросы