2012-11-27 10 views

risposta

6

Le ragioni di ciò sono spiegati su di Hibernate Jira

https://hibernate.onjira.com/browse/HHH-2578

Attualmente un SessionFactory è costruito gettando un sacco di roba in un oggetto di configurazione, mescolando, lasciando venire a ebollizione, e quindi estraendo SessionFactory. Seriamente, ci sono alcuni problemi con il modo in cui attualmente operiamo all'interno di una configurazione e il modo in cui lo usiamo per costruire una SessionFactory: Il problema generale che non esiste un "ciclo di vita" quando saranno disponibili varie informazioni. Questa è un'omissione importante in diversi modi: 1) considera la generazione dello schema. al momento non possiamo nemmeno sapere il dialetto quando vengono determinati molti nomi di oggetti db. questo sarebbe bello perché ci permetterebbe di gestire in modo trasparente nomi di tabelle/colonne che sono anche parole chiave/parole riservate nel dialetto, per esempio. 2) staticità dei tipi e dei tipi di mappatura. Perché al momento non abbiamo nulla a cui applicarli. Idealmente un'istanza di tipo sarebbe a conoscenza della SessionFactory a cui è associata. Invece, quello che abbiamo ora è quello di cambiare i metodi API un bel po 'di tempo per aggiungere in SessionFactory come parametro passato ogni volta che viene scoperto che è necessario. 3) inoltre, la maggior parte (tutti?) Dei parametri di configurazione "statici" in Hibernate sono attualmente richiesti per il loro uso all'interno di questi tipi statici; quindi i tipi di scope ci permetterebbero anche di mettere in campo questi parametri di configurazione (cose come bytecode-provider, uso di flussi binari, ecc.). Idealmente, quello che vedo succedere è uno schema in cui gli utenti costruiscono personalmente un'istanza org.hibernate.cfg.Settings (o qualcosa di simile). Inoltre, applicherebbero i metadati a un registro di qualche tipo (per ora chiamiamolo MetadataRegistry). Quindi, per costruire una SessionFactory, fornirebbero queste due informazioni (tramite ctor? Via builder?). L'aspetto importante è che le informazioni in MetadataRegistry non verranno trattate fino a quel momento, il che ci consentirebbe di garantire che i nomi degli oggetti dello schema, i tipi, ecc. Abbiano accesso alle Impostazioni di runtime (e in particolare al dialetto)

si può leggere anche commenti su questo: https://hibernate.onjira.com/browse/HHH-7580 suo troppo da copia incolla e credo Jira non andrà giù in modo tale risposta dovrebbe essere valido.

Problemi correlati