java 如何扫描多个路径与不同的根路径错误创建bean存储库与不受管理的实体类型?

n3ipq98p  于 2023-11-15  发布在  Java
关注(0)|答案(1)|浏览(92)

我必须域名包com.domain.app和net.domain.app,MyApplication其中@SpringBootApplication在com.domain.app中,但我现在在net.domain.app中实现新的东西
我有@Service,它工作得很好,但随着@Repository的添加,我不得不添加@EnableJpaRepositories(basePackages = {”com.domain.app“,“net.domain.app“})来解决错误,下一个问题是@Entity。
我在第二个域包名称上得到这个错误,似乎找不到带有@Entity的托管bean。
你知道为什么会发生这种情况以及如何解决吗?

org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'userService': Unsatisfied dependency expressed through field 'repo'; 
nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'userRepository' defined in net.conselldemallorca.sirh.business.security.boundary.UserRepository defined in @EnableJpaRepositories declared on MyApplication: 
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class net.domain.app.security.entity.User
...
Caused by: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'userRepository' defined in net.domain.app.security.boundary.UserRepository defined in @EnableJpaRepositories declared on MyApplication: 
Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 
Not a managed type: class net.domain.app.security.entity.User
...
Caused by: java.lang.IllegalArgumentException: 
Not a managed type: class net.domain.app.security.entity.User

字符串
MyApplication.java

package com.domain.app;
@SpringBootApplication
@ComponentScan(basePackages = {"com.domain.app", "net.domain.app"})
@EnableJpaRepositories(basePackages = {"com.domain.app", "net.domain.app"})
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}


UserRepository.java

package net.domain.app.security.boundary;
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
...
}


UserService.java

package net.domain.app.security.boundary;
@Service
@Transactional(rollbackFor = Throwable.class)
public class UserService implements UserServiceable {
   @Autowired
   UserRepository repo;
...
}


User.java

package net.domain.app.security.entity;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Objects;
...
@Entity
@Table(name = "USER")
public class User implements Serializable {
...
}

b1uwtaje

b1uwtaje1#

它应该与您要搜索的域包一起添加@ BattyScan。
MyApplication.java

package com.domain.app;
@SpringBootApplication
@ComponentScan(basePackages = {"com.domain.app", "net.domain.app"})
@EntityScan(basePackages = {"com.domain.app", "net.domain.app"})
@EnableJpaRepositories(basePackages = {"com.domain.app", "net.domain.app"})
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}

字符串

相关问题