#java #spring #spring-roo
#java #spring #spring-roo
Вопрос:
Я пытаюсь создать объект Spring Roo для устаревшей таблицы базы данных. В таблице не определен первичный ключ.
Однако Roo не позволит мне определить объект без identifierField
:
@RooEntity(identifierColumn = "", identifierField = "", table = "XYZ", versionField = "")
Это приводит к сбою тестов интеграции Roo с:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'id' in 'field list'
Потому что он создает @Id
@Column(name = "id")
поле и в Roo_Entity.aj.
Я попытался перепроектировать эту таблицу с помощью функции DBRE Roo, но все, что она делает, это создает класс идентификаторов, содержащий все поля объекта. Когда это происходит, я не могу добавить средства поиска для отдельных столбцов таблицы.
Ответ №1:
Насколько я знаю, для Roo требуется первичный ключ и настоятельно рекомендуется идентификатор версии.
Можно использовать либо простой, либо комбинированный первичный ключ. Также, просматривая документацию DBRE, нет упоминания о таблицах без первичного ключа.
Как насчет исправления базы данных? Что это за СУБД? Возможно ли добавить числовой идентификатор, возможно, автоматически сгенерированный?
Комментарии:
1. Я действительно хочу избежать изменения схемы БД только для того, чтобы она работала с Roo. Я все еще не могу найти способ заставить Roo работать с таблицей, у которой нет первичного ключа, поэтому мне, скорее всего, придется добавить первичный ключ.
2. Я так и не смог придумать, как это сделать, поэтому мне пришлось изменить таблицу, чтобы добавить первичный ключ.