Pregunta

Estoy tratando de conectarme a un mongodb con este archivo persistence.xml.Mi instancia de Mongodb no está utilizando ningún nombre de usuario o contraseña.

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
        version="2.0">

        <persistence-unit name="tryAll" transaction-type="RESOURCE_LOCAL">
            <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
            <class>com.learning.beans.User</class>
            <properties>
                <!-- <property name="hibernate.ogm.datastore.provider" value="MONGODB"/> -->
                <property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/>
                <property name="hibernate.ogm.mongodb.database" value="test"/>
                <property name="hibernate.ogm.mongodb.host" value="127.0.0.1"/>
                <property name="hibernate.ogm.mongodb.port" value="27017"/>
            </properties>
        </persistence-unit>
    </persistence>

Estoy creando una instancia de EntityManager usando esto:

    EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tryAll");
    EntityManager manager = entityManagerFactory.createEntityManager();

No puedo ver qué está mal en este código ...?

La pila completa de errores es la siguiente:

    Aug 01, 2014 1:39:34 PM org.hibernate.ejb.HibernatePersistence logDeprecation
    WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
    Aug 01, 2014 1:39:34 PM org.hibernate.ejb.HibernatePersistence logDeprecation
    WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
    Aug 01, 2014 1:39:34 PM org.hibernate.ejb.HibernatePersistence logDeprecation
    WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead.
    Aug 01, 2014 1:39:34 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
    INFO: HHH000204: Processing PersistenceUnitInfo [
name: tryAll
...]
    Aug 01, 2014 1:39:34 PM org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {4.3.5.Final}
    Aug 01, 2014 1:39:34 PM org.hibernate.cfg.Environment <clinit>
    INFO: HHH000206: hibernate.properties not found
    Aug 01, 2014 1:39:34 PM org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: HHH000021: Bytecode provider name : javassist
    Aug 01, 2014 1:39:34 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
    INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
    Aug 01, 2014 1:39:34 PM org.hibernate.ogm.datastore.impl.DatastoreProviderInitiator initiateService
    INFO: OGM000016: NoSQL Datastore provider: org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider
    Exception in thread "main" javax.persistence.PersistenceException: Unable to build entity manager factory
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:83)
at org.hibernate.ogm.jpa.HibernateOgmPersistence.createEntityManagerFactory(HibernateOgmPersistence.java:61)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at com.learning.executors.TryExecutor.main(TryExecutor.java:16)
    Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.ogm.dialect.GridDialect]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:261)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:225)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.ogm.dialect.impl.OgmDialectFactoryInitiator$OgmDialectFactory.<init>(OgmDialectFactoryInitiator.java:51)
at org.hibernate.ogm.dialect.impl.OgmDialectFactoryInitiator.buildServiceInstance(OgmDialectFactoryInitiator.java:33)
at org.hibernate.ogm.dialect.impl.OgmDialectFactoryInitiator.buildServiceInstance(OgmDialectFactoryInitiator.java:27)
at org.hibernate.ogm.service.impl.OptionalServiceInitiator.initiateService(OptionalServiceInitiator.java:23)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:105)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:251)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:225)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:95)
at org.hibernate.ogm.service.impl.OgmJdbcServicesInitiator$OgmJdbcServicesImpl.configure(OgmJdbcServicesInitiator.java:56)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:843)
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:397)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:842)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:75)
... 4 more
    Caused by: org.hibernate.HibernateException: OGM000052: Missing value for property 'hibernate.ogm.datastore.database'
at org.hibernate.ogm.util.configurationreader.impl.PropertyReaderContext.getValue(PropertyReaderContext.java:101)
at org.hibernate.ogm.cfg.impl.DocumentStoreConfiguration.<init>(DocumentStoreConfiguration.java:44)
at org.hibernate.ogm.datastore.mongodb.impl.configuration.MongoDBConfiguration.<init>(MongoDBConfiguration.java:60)
at org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider.configure(MongoDBDatastoreProvider.java:68)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206)
at org.hibernate.ogm.dialect.impl.GridDialectInitiator.initiateService(GridDialectInitiator.java:47)
at org.hibernate.ogm.dialect.impl.GridDialectInitiator.initiateService(GridDialectInitiator.java:34)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:105)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:251)
... 26 more

¿Fue útil?

Solución

Lo que falta es tres propiedades más < / a> en persistence.xml para configurar la conexión db:

Como encontrará aquí También puede usar propiedades más genéricas.

Propiedades comunes a todas / la mayoría de las tiendas se denominan hibernate.ogm.datastore. * Ahora, por ejemplo, por ejemplo. Hay hibernate.ogm.datastore.host, hibernate.ogm.datastore.username, hibernate.ogm.datastore.database, etc. Las propiedades específicas de una sola tienda se denominan hibernate.ogm .. *, por ejemplo. hibernate.ogm.mongodb.connection_timeout.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top