2013-04-01 3 views
-1

J'essaie de créer un schéma de base de données au démarrage du serveur d'applications.
J'utilise hebernate 4.1.9 avec les annotations et hibernate.cfg.xml pour la configuration.Création de la base de données Hibernate

Donc, le problème est que je ne peux pas comprendre complètement ce que je devrais faire pour créer un schéma et ensuite l'utiliser dans l'application. Bien sûr, je veux effectuer la création de schéma seulement au premier démarrage et au prochain démarrage, je veux le mettre à jour. J'essaye d'employer hbn2ddl.auto dans l'état de mise à jour, mais la base de données ne crée pas. Peut être que je devrais utiliser quelque chose comme INIT=create schema IF NOT EXISTS myschema à la fin du hibernate.connection.url ??

J'ai aussi une exception

org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set 

Mais dans hibernate.cfg.xml il y a une telle chaîne:

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> 

Quelqu'un peut-il décrire à moi?

+0

Essayez en regardant [cette question] (http://stackoverflow.com/questions/12373944/how-to-create-database-schema-with-hibernate-cfg -xml) et le lien dans sa réponse. –

+0

J'ai vu le lien dans la réponse avant, mais cela n'aide pas parce que je ne veux pas corriger le script de création supplémentaire et l'ajout du bloc INIT à l'URL ne créera pas le schéma. En fait, j'essaie de comprendre pourquoi? – Anatoly

+0

La documentation Hibernate définit ** hibernate.connection.url ** simplement comme l'URL JDCB. La référence [MySQL Connector/J] (http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html) ne définit pas une propriété ** INIT ** . Je crois que le point de l'article lié à être vous devez mordre la balle et au moins créer un schéma vide vous-même. –

Répondre

2

Je résous le problème moi-même. Je devrais ajouter createDatabase = true à hibernate.connection.url

+0

Spiffy. 'createDatabaseIfNotExist = true' est un autre choix. –

+0

Quand j'ai parlé de la propriété INIT, je voulais dire que j'essayais de trouver quelque chose comme ça. Donc je l'ai trouvé sur votre lien. Je vous remercie. – Anatoly

Questions connexes