Будьте в спящем режиме: Автоматически создавая/обновляя таблицы базы данных на основе классов объекта

Неустранимая ошибка: вызов неопределенной функции XXX

Случается, когда вы пытаетесь вызвать функцию, которая еще не определена. Общие причины включают отсутствующие расширения и включают в себя объявление условной функции, функцию в объявлении функции или простые опечатки.

Пример 1 - Декларация условной функции

$someCondition = false;
if ($someCondition === true) {
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

В этом случае fn() никогда не будет объявлено, потому что $someCondition не соответствует действительности.

Пример 2 - Функция в объявлении функции

function createFn() 
{
    function fn() {
        return 1;
    }
}
echo fn(); // triggers error

В этом случае fn будет объявлен только после вызова createFn(). Обратите внимание, что последующие вызовы createFn() вызовут ошибку об обновлении существующей функции.

Вы также можете увидеть это для встроенной функции PHP. Попробуйте найти функцию в официальном руководстве и проверьте, к какому «расширению» (к нему принадлежит PHP-модуль), и какие версии PHP поддерживают его.

В случае отсутствующее расширение, установите это расширение и включите его в php.ini. Обратитесь к Инструкции по установке в Руководстве по PHP для расширения вашей функции. Возможно, вы также сможете включить или установить расширение с помощью диспетчера пакетов (например, apt в Debian или Ubuntu, yum в Red Hat или CentOS ) или панель управления в среде общедоступного хостинга.

Если функция была введена в более новой версии PHP из того, что вы используете, вы можете найти ссылки на альтернативные реализации в руководстве или в разделе комментариев , Если он был удален из PHP, найдите информацию о том, почему, поскольку это может быть уже не нужно.

В случае отсутствия включено, обязательно включите файл, объявляющий функцию перед вызовом функции.

В случае опечаток исправить опечатку.

Вопросы, относящиеся

95
задан Opal 4 April 2018 в 05:38
поделиться

2 ответа

Я не знаю, если отъезд hibernate от передней стороны имеет значение.

ссылка предлагает, чтобы это было hibernate.hbm2ddl.auto

, значение А create составит Ваши таблицы при sessionFactory создании и оставит их неповрежденными.

значение А create-drop составит Ваши таблицы, и затем отбросит их при закрытии sessionFactory.

, Возможно, необходимо ли установить javax.persistence.Table аннотация явно?

Hope это помогает.

98
ответ дан Steve Chambers 24 November 2019 в 05:50
поделиться

Вы могли бы попытаться изменить эту строку в своем persistence.xml от

<property name="hbm2ddl.auto" value="create"/>

к:

<property name="hibernate.hbm2ddl.auto" value="update"/>

Это, как предполагается, поддерживает схему для следования за любыми изменениями, которые Вы вносите в Модель каждый раз, когда Вы запускаете приложение.

Получил это от JavaRanch

76
ответ дан Ignitor 24 November 2019 в 05:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: