Esiste un semplice flusso di lavoro per generare uno schema di database da classi con mappature Sospensione?

StackOverflow https://stackoverflow.com/questions/3674322

  •  01-10-2019
  •  | 
  •  

Domanda

Id come per definire i miei oggetti quindi utilizzare in letargo per generare il mio DDL da questo. Ma sembra che l'unico vero flusso di lavoro con Hibernate è quello di generare uno schema datbase e poi il reverse engineering di esso. Am I voler fare qualcosa che non ha senso?

È stato utile?

Soluzione

Sì, c'è un hibernate.hbm2ddl.auto proprietà. Il documentazione dice:

  

convalida automaticamente o esportazioni schema DDL al database quando viene creata la SessionFactory. Con create-drop, lo schema di database verrà eliminato quando la SessionFactory è chiusa in modo esplicito.

     

es. validate | aggiornamento | creare | creare-drop

Ci sono diversi modi per definire questa proprietà, a seconda di come si configura il SessionFactory. Il modo di ibernazione è quello di aggiungere semplicemente:

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

Altri suggerimenti

  

Ma sembra che l'unico vero flusso di lavoro con Hibernate è di generare uno schema di database e quindi il reverse engineering di esso.

No, assolutamente no. Storicamente, Hibernate supporta diversi approcci:

  • Top-down:. Si inizia con il modello a oggetti, quindi creare metadata mappatura sia con file XML o annotazioni e quindi generare lo schema utilizzando lo strumento hbm2ddl di Hibernate

  • fino inferiore:. si inizia con un database esistente e generare mappature e classi Java (o classi Java appena annotate) dal schema del database utilizzando hbm2hbmxml e hbm2java

  • Medio out:. Si avvia essere iscritto mapping XML Hibernate e generare classi DDL e Java utilizzando rispettivamente hbm2ddl e hbm2java

  • Incontra nel mezzo: Hai un modello Java esistente e un database esistente. Hibernate utensili non può fare molto qui, avrete molto probabilmente a mappature di scrittura a mano e fare un po 'di refactoring del database, o del codice Java, o utilizzare una sorta di ponte. Questa è la situazione peggiore.

Quindi, come abbiamo visto, Hibernate supporta diversi flussi di lavoro e fornisce attrezzature per loro. E nel tuo caso, si sta cercando il tool chiamato hbm2ddl (noto anche come SchemaExport, che è il nome della classe che implementa esso). Ci sono diversi modi per usarlo:

  • È possibile eseguire SchemaExport di programmazione.
  • È possibile attivare l'esportazione automatica dello schema in fase di creazione SessionFactory impostando la hibernate.hbm2ddl.auto proprietà su un valore appropriato
  • È possibile utilizzare l'attività Ant <hbm2ddl>

Bibliografia

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top