亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過字段 'employeeDao' 表達的不滿足依賴;

通過字段 'employeeDao' 表達的不滿足依賴;

神不在的星期二 2023-02-23 16:54:57
I am fresh to spring boot and currently facing this error in STS"Error creating bean with name 'employeeDao': Unsatisfied dependency expressed through field 'sessionfactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException"Entity Class@Entity@Table(name = "studenttable")public class Employee {@Id    @GeneratedValue(strategy=GenerationType.AUTO)    private Long id;    @Column(name = "sname")    private String sname;    @Column(name = "scourse")    private String cname;    @Column(name = "sfee")    private Double fee;Hibernate Utils Class    @Configuration    public class HibernateUtilsConfig {        @Autowired        private EntityManagerFactory entityManagerFactory;        @Bean        public SessionFactory getSessionFactoty() {            if(entityManagerFactory.unwrap(SessionFactory.class)== null) {                throw new NullPointerException("Factory Not Found");            }            return entityManagerFactory.unwrap(SessionFactory.class);        }DAO Class@Repositorypublic class EmployeeDao {    @Autowired    private SessionFactory sessionfactory;    public void createEmployee(Employee employee) {        Session session = null;        try {            session = sessionfactory.openSession();            session.beginTransaction();        Integer id=(Integer)    session.save(employee);        System.out.println("The record is add in the system" + id);            session.getTransaction().commit();        }catch (Exception e) {            // TODO: handle exception            e.printStackTrace();        }    }Main Class@SpringBootApplicationpublic class SpringExampleApplication implements CommandLineRunner {    @Autowired    private EmployeeDao employeeDao;    public static void main(String[] args) {        SpringApplication.run(SpringExampleApplication.class, args);    }
查看完整描述

1 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

您面臨的問題是由于HibernateUtilsConfig.java您提供的配置類引起的。在您的 EmployeeDao 類中,您正在自動裝配sessionfactorybean。因此,當 springboot 嘗試自動裝配 bean 時,它會失敗并出現以下錯誤:


Unsatisfied dependency expressed through field 'sessionfactory'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'hibernateUtilsConfig': Unsatisfied dependency expressed through field 'entityManagerFactory'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'getSessionFactoty': Requested bean is currently in creation: Is there an unresolvable circular reference?

因為entityManagerFactorybean 不可用。


由于您使用的是 spring-boot ,因此您可能無法手動配置所有內容。您可以通過添加以下依賴項來使用 spring-boot 的默認自動配置:


<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

然后,您可以在 application.properties 或 application.yml 中提供適當的鍵,spring-boot 將為您配置所有內容。


application.properties


spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.username=mysqluser

spring.datasource.password=mysqlpass

spring.datasource.url=jdbc:mysql://localhost:3306myDb?createDatabaseIfNotExist=true

如果您仍想手動設置所有內容,請嘗試創建實體管理器 bean,例如:


   @Bean

   public LocalContainerEntityManagerFactoryBean entityManagerFactory() {

      LocalContainerEntityManagerFactoryBean em 

        = new LocalContainerEntityManagerFactoryBean();

      em.setDataSource(dataSource());

      em.setPackagesToScan(new String[] { "com.example.persistence.model" });


      JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();

      em.setJpaVendorAdapter(vendorAdapter);

      em.setJpaProperties(additionalProperties());


      return em;

   }


查看完整回答
反對 回復 2023-02-23
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號