проблема с Cayenne Entity Manager

Я пытаюсь сохранить объект в базе данных с помощью Cayenne Entity Manager. И, к сожалению, я получаю следующую ошибку:

org.apache.cayenne.CayenneRuntimeException: [v.3.0 Apr 26 2010 09:59:17] Commit Exception

Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'myDatabase.auto_pk_support' doesn't exist

Любая идея, как я могу решить эту проблему? Спасибо.


person user224270    schedule 02.06.2010    source источник


Ответы (1)


В случае вашей ошибки мне кажется, что вы выбираете в Cayenne Modeler «стратегию генерации ПК» «по умолчанию» (нажмите на свои объекты БД, чтобы увидеть поле со списком с этой опцией). Это означает, что Cayenne ожидает наличия заполненной таблицы auto_pk_support в вашей схеме (чтобы иметь возможность генерировать и отслеживать первичные ключи).

Cayenne Modeler может сгенерировать для вас эту таблицу + содержимое: выберите в меню «Инструменты» «Создать схему БД», выберите правильное соединение и в следующем диалоговом окне установите только флажок «Создать поддержку PK»: — вы увидите SQL, необходимый для сгенерируйте его — вы можете скопировать и вставить его в свой любимый инструмент SQL или позволить Cayenne Modeler запустить его.

Поскольку вы используете MySQL, у вас, конечно, есть и другие варианты генерации PK (вышеуказанный вариант является классическим/по умолчанию и работает с любой базой данных, но требует дополнительной таблицы).

Я предлагаю ознакомиться с документацией по Cayenne Modeler, а лучше с полная документация по cayenne (поскольку она очень хорошая), так как все вышеперечисленные пункты очень хорошо объяснены там.

person A. Ionescu    schedule 08.07.2010
comment
Большое спасибо. У меня была проблема в некоторых из моих тестовых случаев. Я не получил сообщения об ошибке при выполнении mvn test. Теперь это работает. - person H6.; 18.08.2011