Domanda

Sono stato incaricato con il reverse Engineering Ibernate Mappings da un grande database SQL Server Legacy, Legacy.Il database effettua un ampio utilizzo dei vincoli di controllo (diversi per tavolo) e indici, e mentre sosterrei che queste sono preoccupazioni DBA, dobbiamo preservarli nelle mappature ibernate.

Utilizzando gli strumenti di Hibernate per Eclipse, posso invertire con successo l'ingegnere le nostre tabelle in file .hbm.xml;Tuttavia, nessuno dei vincoli o indici di controllo sono presenti.So che è possibile aggiungere manualmente entrambi i vincoli e gli indici di controllo direttamente alla mappatura, ad esempio.:

<class name="package.Tablename" 
       table="TABLENAME" 
       schema="dbo" 
       catalog="MyDB"
       check="START_DATE &lt; END_DATE"> <!-- here -->
   ...
   <property name="endDate" type="timestamp" index="IDX_END_DATE"> <!-- here -->
            <column name="END_DATE" />
   </property>
   ...
</class>
.

Abbiamo centinaia di tavoli e migliaia di indici / controllo dei vincoli, quindi aggiungendoli a mano alle mappature inverse ingegnerizzate non è davvero fattibile.

è possibile ottenere strumenti di ibernazione per sputarli per noi?Se é cosi, come?In caso contrario, qualcuno può raccomandare un altro strumento che lo farà?

È stato utile?

Soluzione

It's not possible to do this out of the box with Hibernate Tools; however, it is possible to add DDL to your mappings inside of <database-object> elements. In order to reverse engineer this information, you'll have to write a custom utility class that is invoked via a custom template.

Since a boatload of <database-object>s didn't provide the level of abstraction and general user-friendlyness that my employer wanted, we opted not to take this approach and modeled our database in a different manner.

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