5

在我的 java 项目中,我有 2 个名称相同但包不同的实体,我也有这些实体对应的 dao。

现在由于 2 个实体具有相同的名称,它给出了重复扫描错误,所以我用它们的完全限定名称为这些实体添加了名称属性。

例如:实体(name="pckEntity) & 实体(name="pabEntity)

但现在我他们相应的 daos 无法自动装配,我收到以下错误:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type...

我是否还必须更改 Dao 中的任何内容以支持实体中的“名称”属性更改。

我正在使用 Hibernate、JPA 和 Spring。

4

3 回答 3

0

默认情况下,自动装配是按类型完成的。所以你可以直接使用@Autowired注解,因为两个实体都是不同的类,确保它们是 spring bean(这里我的意思是那些由 Spring 管理)。

@Autowired // nothing to specify, Spring automatically autowire the bean by checking type
private p.c.k.Entity entity;
@Autowired // nothing to specify, Spring automatically autowire the bean by checking type
private p.a.b.Entity entity1;
于 2013-01-24T12:02:21.120 回答
0

我认为您可以使用@Qualifier注释

@Autowired
@Qualifier("p.c.k.Entity")
private Entity entity;

这里得到

于 2013-01-24T11:55:49.097 回答
0

我也遇到了这个问题,除了重命名其中一个类之外,找不到任何解决方法。在不同的包装中应该就足够了,但事实并非如此。

于 2017-02-16T18:11:47.057 回答