Я пытаюсь использовать spring-data-jpa и spring-data-mongodb. В развертывании, некоторые из моих хранилищ разворачивать, пока один (случайный один каждый раз) не удается развернуть с ошибкойНазвание бина неоднозначно совпадает с одним и тем же бобом
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001414: Bean name is ambiguous. Name za.co.knonchalant.dead.dao.repositories.UserRepository resolves to beans:
- CdiRepositoryBean: type='za.co.knonchalant.dead.dao.repositories.UserRepository', qualifiers=[@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()],
- CdiRepositoryBean: type='za.co.knonchalant.dead.dao.repositories.UserRepository', qualifiers=[@javax.enterprise.inject.Default(), @javax.enterprise.inject.Any()]"}}
Это, кажется, соответствие один и тот же интерфейс, дважды - любое представление о том, что может происходить?
Интерфейс UserRepository
является
public interface UserRepository extends LocationRepository<User> { }
LocationRepository
И это общий корень интерфейс для местоположений, который выглядит как
@NoRepositoryBean
public interface LocationRepository<T> extends JpaRepository<T, String> {
List<T> findByPositionWithin(Circle c);
List<T> findByPositionNear(Point p, Distance distance);
List<T> findByPositionWithin(Box b);
}
Моя конфигурация, которую я не слишком уверен в, является
@Configuration
@EnableJpaRepositories
public class CdiConfig {
@Produces
@Dependent
@PersistenceContext(unitName = "mongo-ogm")
public EntityManager entityManager;
public
@Bean
Mongo mongo() throws Exception {
return new Mongo("localhost");
}
@Produces
public @Bean MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongo(), "mydatabase");
}
}
Наряду с persistence.xml
в соответствии со следующим - это правильный провайдер?
<persistence version="2.0" 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">
<persistence-unit name="mongo-ogm" transaction-type="JTA">
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"/>
<property name="hibernate.ogm.datastore.database" value="database"/>
<property name="hibernate.ogm.datastore.host" value="localhost"/>
<property name="hibernate.ogm.datastore.provider" value="MONGODB"/>
<property name="hibernate.ogm.datastore.create_database" value="true"/>
</properties>
</persistence-unit>
</persistence>
Возможно, это будет хорошая идея, если бы вы могли включить код для своего UserRepository. – megalucio
Вы используете 'spring-data-jpa' и' spring-data-mongodb' ?. возможно, 'spring-data-jpa' генерирует' Jpa Repository Bean' и 'spring-data-mongodb'' MonogRepository' Bean ?. Не могли бы вы добавить свою конфигурацию? – Pau
Я - я добавлю конфигурацию, как только приблизится к коду, мне понадобится обе эти библиотеки в этом случае, не так ли? –