Пожалуйста, смотрите подобный вопрос на примере на cascade
ранее спросил:
customizing hibernate properties in hyperjaxb
И проверить Hyperjaxb customizations schema, который использует JPA ORM schema:
Это приведет к что-то вроде:
<jaxb:bindings schemaLocation="schema.xsd" node="/xs:schema">
<hj:persistence>
<hj:default-many-to-one fetch="LAZY">
<!-- ... -->
</hj:default-many-to-one>
</hj:persistence>
</jaxb:bindings>
Если вы хотите fetch="LAZY"
на все ваши ассоциации, вам придется настроить default-one-to-one
, default-one-to-many
, default-many-to-many
, а также. Эти настройки будут применяться глобально (семантика «сопоставлений по умолчанию»). Вам не нужно настраивать сотни свойств.
Hyperjaxb на самом деле имеет три уровня отображения:
- Built-in defaults - встроенные отображения по умолчанию. Это внутренние значения Hyperjaxb
- Customized default mappings - по умолчанию вы можете настроить для каждой схемы. Поэтому, если по какой-то причине вас не устраивают по умолчанию, вы можете предоставить свои собственные сопоставления по умолчанию - только там, где вы хотите их разных из встроенных значений по умолчанию.
- Customized property and association mappings или classes - вещи, которые вы настраиваете для определенного класса, имущества или ассоциации. Опять же, только там, где вы хотите, чтобы они отличались от настроенных или встроенных значений по умолчанию.
Эти уровни настроек наследуются друг от друга. Поэтому, если вы не настроите, вы получите встроенные значения по умолчанию.
Касательно вашей обратной связи по качеству документации Hyperjaxb. Я абсолютно согласен с тем, что он очень далек от того, чтобы быть оптимальным (на самом деле это не оспаривалось).
Но это лучшее состояние, которое возможно на данный момент. У меня просто нет ресурсов для активного развития или продвижения проекта. Hyperjaxb - это нишевый инструмент, который предлагает очень ограниченное количество проектов или приложений. Существует некоторый, но очень низкий интерес пользователей/разработчиков, что экономически нецелесообразно разрабатывать и поддерживать полный или даже неполный рабочий день.
Проще говоря, мои варианты на данный момент являются:
- закрыть и отказаться от проекта
- оставить его на поддержание низкого пламени
Я бы закрыть и оставить проект давно, но:
- Я знаю, что есть пользователи, которые довольны Hyperjaxb, как есть.
- Я не знаю никакого аналога Hyperjaxb, который обеспечил бы - даже отдаленно - ту же функциональность и мощность. Под «аналоговым» я подразумеваю все, что создавало бы классы с поддержкой JPA на основе XML-схемы. Конечно, есть и другие инструменты, такие как блестящие MOXy, которые используют другие источники (классы Java, UML, что угодно), но я не знаю другого инструмента, который бы делал XSD-> Java + JPA. К сожалению, похоже, что я разработал уникальный инструмент.
Так что в этой ситуации я могу оставить проект на очень низком огне, просто фиксируя серьезные ошибки и проблемы. Поскольку документация настолько хороша, насколько это определенно, она повышает привлекательность и необходимый опыт для изучения инструмента. Я бы сказал, что для этого есть все средства: есть более 50 + страниц документации, готовых к запуску учебников и образцов, «просто добавьте воду» в проекты шаблонов, доступно более 60 тестовых проектов. Но он уверен, что поднимает трезубство.
И я искренне сожалею, что это не сработает для вас. Примите мои извинения за невыполнение ваших ожиданий.
Отзывы «Ваша документация плохая», независимо от того, насколько она верна, не является полезным вкладом. Спасибо за эту обратную связь, но нет, у меня нет ресурсов, чтобы усердно работать, чтобы упростить использование Hyperjaxb.
Полезный вклад будет:
См. Мой ответ ниже. Могу ли я попросить вас оставить ваши комментарии неповрежденными, поскольку они обеспечивают важный контекст? Спасибо. – lexicore