Настройте В спящем режиме для использования SYS_GUID Oracle () для Первичного ключа

Настройки игровой площадки должны быть объектными, но вы указываете строку. Вы можете исправить это с помощью require.

const server = new ApolloServer({
  typeDefs,
  resolvers,
  playground: {
    endpoint: `/blog/`,
    settings: require('./playground.json')
  }
});

Сервер предоставляет только настройки по умолчанию. Браузер имеет локальные настройки и позволяет создавать музыку.

7
задан Ryan Cook 13 November 2009 в 16:11
поделиться

2 ответа

Вы могли бы использовать генератор "guid". См. этот пост на форуме Hibernate. Похоже, недавно они добавили поддержку Oracle с помощью SYS_GUID () , но в документации все еще говорится, что они поддерживают только SQL Server и MySQL.

Я не работал с Аннотаций JPA пока нет, но вот пример использования конфигурации XML:

<id name="PRODUCT_ID">
  <generator class="guid" />
</id>

РЕДАКТИРОВАТЬ: Что касается вашего второго вопроса, я думаю, вы спрашиваете, почему Hibernate не может делать что-то вроде этого:

INSERT INTO PRODUCT (PRODUCT_ID, /* etc */)
SELECT SYSGUID(), /* etc */

Причина в том, что Hibernate должен знать идентификатор объекта. Например, рассмотрим следующий сценарий:

  1. Вы создаете новый объект «Продукт» и сохраняете его. Oracle назначает идентификатор.
  2. Вы отключаете Продукт от сеанса Hibernate.
  3. Вы позже снова присоединяете его и вносите некоторые изменения.
  4. Теперь вы хотите сохранить эти изменения.

Без знания идентификатора Hibernate не может этого сделать. Идентификатор необходим для выполнения оператора UPDATE. Таким образом, реализация org.hibernate.id.GUIDGenerator должна заранее сгенерировать идентификатор, а затем повторно использовать его в операторе INSERT.

Это та же самая причина, по которой Hibernate не может выполнять любая пакетная обработка , если вы используете идентификатор, сгенерированный базой данных (включая автоинкремент для баз данных, которые его поддерживают). Использование одного из генераторов hilo или какого-либо другого механизма идентификации, сгенерированного Hibernate, - единственный способ получить хорошую производительность при одновременной вставке большого количества объектов.

hibernate.id.GUIDGenerator должен заранее сгенерировать идентификатор, а затем повторно использовать его в операторе INSERT.

Это та же самая причина, по которой Hibernate не может выполнять пакетную обработку , если вы использовать идентификатор, созданный базой данных (включая автоинкремент для баз данных, которые его поддерживают). Использование одного из генераторов hilo или какого-либо другого механизма идентификации, сгенерированного Hibernate, - единственный способ получить хорошую производительность при одновременной вставке большого количества объектов.

hibernate.id.GUIDGenerator должен заранее сгенерировать идентификатор, а затем повторно использовать его в операторе INSERT.

Это та же самая причина, по которой Hibernate не может выполнять пакетную обработку , если вы использовать идентификатор, созданный базой данных (включая автоинкремент для баз данных, которые его поддерживают). Использование одного из генераторов hilo или какого-либо другого механизма идентификации, сгенерированного Hibernate, - единственный способ получить хорошую производительность при одновременной вставке большого количества объектов.

5
ответ дан 7 December 2019 в 07:50
поделиться

Думаю, это можно сделать, установив родной генератор. Я не совсем уверен, как это сделать в Hibernate, но в NHibernate вы бы сделали что-то вроде этого в XML:

<id column="PRODUCT_ID">
  <generator class="native"/>
</id>
0
ответ дан 7 December 2019 в 07:50
поделиться
Другие вопросы по тегам:

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