Как заставить @ManyToOne работать с Spring Lemon?
У меня есть существующий проект Spring MVC + Spring Security + Thymeleaf. Мое намерение состоит в том, чтобы добавить к нему функциональность Spring Lemon.
Я следовал руководству Spring Lemon Getting Started и создал проект на базе Lemon. Работает успешно.
Сейчас я пытаюсь скопировать свои сущности в проект Lemon.
Все идет хорошо, пока я не изменю свои сущности, чтобы расширить VersionedEntity, как сказано в документации. Тогда я получаю эту ошибку:
Похоже, VersionedEntity несовместимо с моими отношениями ManyToOne. И когда я удаляю эти отношения, проблема исчезает.
Как я могу получить таблицы, созданные с этими аннотациями JPA?
2 ответа
Даже расширение AbstractAuditable не решило это. С помощью Sanjay я понял, что когда вы расширяете VersionedEntity или LemonEntity, вам больше не нужно поле Id в вашем классе сущностей. Затем я удалил его, и это сработало.
VersionedEntity
это легкий класс для поддержки версий, который расширяет LemonEntity
что расширяет Spring Data JPA AbstractAuditable
, Итак, чтобы определить, в чем может быть проблема, я думаю, вы можете попробовать расширить свои классы прямо с LemonEntity
или же AbstractAuditable
, а затем посмотреть, если проблема все еще остается.
Посмотрим, что вы найдете. Если проблема возникает, даже если ваши лица расширяются AbstractAuditable
, может быть AbstractAuditable
не совместим с @ManyToOne
(при условии, что ваш код в порядке). В этом случае, я думаю, что повышение этого с Spring Data JPA ребята (либо добавить spring-data-jpa
пометить на этот вопрос или создать отдельный вопрос с этим тегом) поможет.