проблема с Cayenne Entity Manager - PullRequest
2 голосов
/ 02 июня 2010

Я пытаюсь сохранить объект в базе данных с помощью 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

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

1 Ответ

4 голосов
/ 08 июля 2010

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

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

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

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

...