Однозначное сопоставление JPA дает исключение синтаксического анализа - PullRequest
2 голосов
/ 29 ноября 2011

Я получаю org.xml.sax.SAXParseException, когда пытаюсь отобразить отношение один к одному в JPA

Все работает нормально, пока я не перехожу с

<transient name="testCase"/>

до:

<attributes>
..
    <one-to-one name="testCase">
        <join-column name="test_case_id"/>
    </one-to-one>
..
</attributes>

выдает ошибку:

Причина: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Обнаружено недопустимое содержимое, начиная с элемента «один-к-одному» Ожидается один из {{* http://java.sun.com/xml/ns/persistence/orm":many-to-many, "http://java.sun.com/xml/ns/persistence/orm":embedded," http://java.sun.com/xml/ns/persistence/orm":transient}'.

Я не понимаю, что означает сообщение об исключении. Почему это ожидается для этого?

Ответы [ 2 ]

5 голосов
/ 03 апреля 2013

Ваш файл orm.xml был недопустим в соответствии с его схемой XML. Проблема заключалась в том, что элемент «один к одному» является частью последовательности, что означает, что содержащиеся в нем элементы ДОЛЖНЫ соответствовать определенному порядку.

Аннотация схемы:

  <xsd:complexType name="attributes">
    <xsd:sequence>
      ...
      <xsd:element name="basic" .../>
      <xsd:element name="version" .../>
      <xsd:element name="many-to-one" .../>
      <xsd:element name="one-to-many" .../>
      <xsd:element name="one-to-one" .../>
      <xsd:element name="many-to-many" .../>
      ...
    </xsd:sequence>
  </xsd:complexType>

см. Всю схему в введите описание ссылки здесь

2 голосов
/ 29 ноября 2011

Я нашел проблему. Я переместил раздел один-к-одному, так что это было до раздела многие-ко-многим Не знаю, почему это произошло. Два раздела не имеют ничего общего.

...