Please answer why this error occurs and how to fix it? !! Prosherstil the entire Internet, but could not find (
Stack trace errors:
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'addressRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: EntityPathResolver must not be null! at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1762) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:830) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85) at by.babanin.App.main(App.java:72) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.uiDesigner.snapShooter.SnapShooter.main(SnapShooter.java:59) Caused by: java.lang.IllegalArgumentException: EntityPathResolver must not be null! at org.springframework.util.Assert.notNull(Assert.java:198) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.setEntityPathResolver(JpaRepositoryFactory.java:111) at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.createRepositoryFactory(JpaRepositoryFactoryBean.java:105) at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.doCreateRepositoryFactory(JpaRepositoryFactoryBean.java:96) at org.springframework.data.repository.core.support.TransactionalRepositoryFactoryBeanSupport.createRepositoryFactory(TransactionalRepositoryFactoryBeanSupport.java:80) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:270) at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:119) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1821) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1758) ... 17 more
App.java file:
package by.babanin; import by.babanin.entity.Address; import by.babanin.entity.Employee; import by.babanin.entity.Project; import by.babanin.repository.AddressRepository; import by.babanin.repository.EmployeeRepository; import by.babanin.repository.ProjectRepository; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.sql.Date; import java.util.Calendar; import java.util.HashSet; import java.util.Set; public class App { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); AddressRepository addressRepository = context.getBean(AddressRepository.class); EmployeeRepository employeeRepository = context.getBean(EmployeeRepository.class); ProjectRepository projectRepository = context.getBean(ProjectRepository.class); Address address = new Address(); Employee employee = new Employee(); Project project = new Project(); setExample(address, employee, project); System.out.println(address); System.out.println(employee); System.out.println(project); addressRepository.save(address); employeeRepository.save(employee); projectRepository.save(project); System.out.println(addressRepository.findAll()); System.out.println(employeeRepository.findByFirstNameAndLastName("Dmitry", "Babanin")); } public static void setExample(Address address, Employee employee, Project project) { address.setCountry("Belarus"); address.setCity("Minsk"); address.setStreet("per. Kalinina 7/49"); address.setPostCode("220012"); employee.setFirstName("Dmitry"); employee.setLastName("Babanin"); Calendar calendar = Calendar.getInstance(); calendar.set(1996, Calendar.APRIL, 21); employee.setBirthday(new Date(calendar.getTime().getTime())); employee.setAddress(address); project.setTitle("Искуственный интелект"); Set<Employee> employees = new HashSet<>(); employees.add(employee); project.setEmployees(employees); Set<Project> projects = new HashSet<>(); projects.add(project); employee.setProjects(projects); } }
File AddressRepository.java:
package by.babanin.repository; import by.babanin.entity.Address; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface AddressRepository extends JpaRepository<Address, Long> {}
File applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"> <jpa:repositories base-package="by.babanin.repository"/> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.h2.Driver"/> <property name="url" value="jdbc:h2:~/test"/> <property name="username" value="sa"/> <property name="password" value=""/> </bean> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="persistenceUnitName" value="jpaData"/> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/> </property> <property name="jpaProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop> <prop key="hibernate.hbm2ddl.auto">create</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">false</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory"/> </bean>
Persistence.xml file:
<?xml version="1.0" encoding="UTF-8"?> <persistence 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" version="2.0"> <persistence-unit name="jpaData" transaction-type="RESOURCE_LOCAL"/> </persistence>