Как заставить @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 пометить на этот вопрос или создать отдельный вопрос с этим тегом) поможет.

Другие вопросы по тегам