Аннотация JoinColumn друга ORMLite ManyToOne не обрабатывается

Я возился с ormlite на Android. Это первые дни, и пока мне очень нравится то, что я видел.

Читая руководство, я заметил возможность использовать аннотацию javax.persistence вместо аннотации по умолчанию. При попытке определить отношения @ManyToOne я немного застрял. Обычно я использую @JoinColumn(name="xxx") для определения имени столбца с помощью @ManyToOne, т.е. не @Column(name="xxx"). Я прав, или я должен смотреть на это по-другому.

Я бегло посмотрел и подумал, что несколько небольших дополнений к com.j256.ormlite.misc.JavaxPersistence.java решат эту проблему. В основном дублирование кода для обработки @Column вместо обработки @JoinColumn (возможно, без «длины»).

Это также заставило меня задаться вопросом, были ли какие-либо проблемы с использованием как стандартных аннотаций ormlite, так и javax.persistence. Такие вопросы, как:

  • имеют ли стандартные аннотации приоритет? и
  • можно ли отключить обработку javax.persistence аннотаций?

person AndrewS    schedule 05.09.2011    source источник


Ответы (1)


К сожалению, @user928550, аннотации javax.persistence не полностью поддерживаются ORMLite. Ограниченная поддержка для них определена в руководстве:

http://ormlite.com/docs/jpa

Я был бы рад улучшить поддержку для них, если вы хотите внести предложения о том, как действовать дальше. Пожалуйста, используйте список рассылки разработчиков ORMLite, чтобы предложить свои дополнения:

http://groups.google.com/group/ormlite-dev

Отвечая на ваши конкретные вопросы, наличие аннотации @DatabaseField переопределяет любую обработку аннотации javax.persistence, и вы не можете отключить обработку javax.persistence (если вы не укажете @DatabaseField).

person Gray    schedule 06.09.2011
comment
Большое спасибо за Ваш ответ. Я последовал вашему предложению и добавил свои предложения, как вы рекомендовали - person AndrewS; 06.09.2011