Bean名称模糊匹配相同的bean两次

时间:2016-10-27 14:23:17

标签: spring-data spring-data-jpa spring-data-mongodb

我正在尝试使用spring-data-jpa和spring-data-mongodb。在部署时,我的几个存储库部署,直到一个(每次随机一个)无法部署,错误为

   localparam [31:0] SYNTH_PRD_REGS[1][5][13] = '{
                 '{
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000},
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000},
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000},
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000},
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000}                             
                }
 }; // Error for this line.

似乎两次匹配相同的界面 - 对可能发生的事情的任何想法?

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

1 个答案:

答案 0 :(得分:2)

我认为这两个库都有相同的bean,因此您需要在Maven pom.xml中为其中一个库添加提供的范围。看起来Spring正在多个地方找到相同的bean。