Перепроектируйте DDL от объектов JPA

Если вы используете React, создайте компонент для обработки данных и создайте свой список, и вот как я бы запрашивал данные у Firebase:

let titresDB = firebase.database().ref('titres')
titresDB.once('value', (snapshot) => {
  let data = []
  snapshot.forEach((childSnapshot) => {
    data.push({
      _key: childSnapshot.key,
      ...childSnapshot.val()
    })
  })
  // then do something with the data
  // in React you could setState
  this.setState({ data })
})

Компонент списка:

    <ul>
      {this.state.data.map((book) => {
        return (
          <li key={book._key}>
            <h3>{book.title}</h3>
            <p>{book.rating}</p>
            <p>{book.description}</p>
          </li>
        )
      })}
    </ul>
19
задан James McMahon 15 May 2009 в 19:56
поделиться

4 ответа

I don't think there is an universal way of doing this with JPA, you have to directly use the underlying JPA implementation to achieve this.

For Hibernate, there are several possibilities:

  • Use the method duffymo posted earlier, that makes Hibernate update the database schema automatically.
  • If you do not want that, you can use the hbm2ddl tool from Hibernate Tools (note: link sucks, but apparently their home page is a bit broken right now). You can use that to automatically generate database creation scripts from your JPA entities; there are also plugins for Maven and Ant that invoke hbm2ddl automatically.

For EclipseLink (formerly Oracle TopLink, the JPA 2.0 RI) see Using EclipseLink JPA Extensions for Schema Generation. In principle it is very similar to Hibernate, although at first glance I don't see anything that could be used as a stand-alone utility for creating a DB script.

Other JPA implementations (BEA/Oracle Kodo, Apache OpenJPA) probably have their own specific methods of achieving this.

8
ответ дан 30 November 2019 в 02:56
поделиться

Когда я использую Hibernate, я просто добавляю это в свой конфигурационный файл:

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

Заботится обо всем. Я не уверен, что эквивалентен JPA, но Hibernate настолько сильно на него влияет, что я был бы удивлен, если бы вы не смогли найти что-то подобное.

Инструмент не нужен. Я обычно просто запускаю простой тест JUnit, и база данных создается для меня.

6
ответ дан 30 November 2019 в 02:56
поделиться

DataNucleus has its own SchemaTool capable of generating the schema for you, or generating the required DDL statements for you to adapt and apply yourself.

--Andy (DataNucleus)

2
ответ дан 30 November 2019 в 02:56
поделиться

Попробуйте добавить следующее в свой persistence.xml

Для Hibernate:

Для создания:

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

Для удаления и создания:

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

Для Toplink:

Для создания :

<property name="toplink.ddl-generation" value="create-tables"/>

Для отбрасывания и создания:

<property name="toplink.ddl-generation" value="drop-and-create-tables"/>

Для EclipseLink:

Для создания:

<property name="eclipselink.ddl-generation" value="create-tables"/>

Для отбрасывания и создания:

<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
17
ответ дан 30 November 2019 в 02:56
поделиться
Другие вопросы по тегам:

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