Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'employeeRepo': Invocation of init method failed; nested exception is java.lang.AbstractMethodError
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
- at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
- at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
- at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
- at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
- at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753)
- at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762)
- at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
- at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
- at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
- at com.jcg.examples.test.Application.main(Application.java:58)
- Caused by: java.lang.AbstractMethodError
- at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:171)
- at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:239)
- at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:225)
- at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
- ... 12 more
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>SpringDataMongoDbExample</groupId>
- <artifactId>SpringDataMongoDbExample</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <dependencies>
- <dependency>
- <groupId>org.springframework.data</groupId>
- <artifactId>spring-data-mongodb</artifactId>
- <version>1.7.2.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>4.2.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- <version>4.2.5.RELEASE</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-tx</artifactId>
- <version>4.2.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.38</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- <version>4.2.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aspects</artifactId>
- <version>4.2.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>4.2.5.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>4.3.10.Final</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-commons-annotations</artifactId>
- <version>3.2.0.Final</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>4.3.10.Final</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate.javax.persistence</groupId>
- <artifactId>hibernate-jpa-2.0-api</artifactId>
- <version>1.0.0.Final</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.data</groupId>
- <artifactId>spring-data-jpa</artifactId>
- <version>1.9.4.RELEASE</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.tomcat.maven</groupId>
- <artifactId>tomcat7-maven-plugin</artifactId>
- <version>2.2</version>
- </plugin>
- </plugins>
- </build>
- </project>
- <?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="com.jcg.examples.jpa.repo"/>
- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
- <property name="url" value="jdbc:mysql://localhost:3306/springDataJPA"/>
- <property name="username" value=""/>
- <property name="password" value=""/>
- </bean>
- <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
- <property name="showSql" value="true"/>
- <property name="generateDdl" value="true"/>
- <property name="database" value="MYSQL"/>
- </bean>
- <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
- <property name="dataSource" ref="dataSource"/>
- <property name="jpaVendorAdapter" ref="jpaVendorAdapter"/>
- <!-- spring based scanning for entity classes-->
- <property name="packagesToScan" value="com.jcg.examples.entity"/>
- </bean>
- <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"/>
- </beans>
- <?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:context="http://www.springframework.org/schema/context"
- xmlns:mongo="http://www.springframework.org/schema/data/mongo"
- xsi:schemaLocation=
- "http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/data/mongo
- http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
- <!-- Default bean name is 'mongo' -->
- <mongo:mongo id="mongo" host="localhost" port="27017"/>
- <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
- <constructor-arg ref="mongo"/>
- <constructor-arg name="databaseName" value="jcg"/>
- </bean>
- <mongo:repositories base-package="com.jcg.examples.mongo.repo"></mongo:repositories>
- </beans>
- package com.jcg.examples.entity;
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.Id;
- import javax.persistence.Table;
- @Entity
- @Table(name = "Employee")
- public class Employee {
- @Id
- @Column(name = "id")
- private int id;
- @Column(name = "firstName")
- private String firstName;
- @Column(name = "lastName")
- private String lastName;
- @Column(name = "dept")
- private String dept;
- public Employee() {
- }
- public Employee(int id, String firstName, String lastName, String dept) {
- this.setId(id);
- this.setFirstName(firstName);
- this.setLastName(lastName);
- this.setDept(dept);
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getFirstName() {
- return firstName;
- }
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
- public String getLastName() {
- return lastName;
- }
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
- public String getDept() {
- return dept;
- }
- public void setDept(String dept) {
- this.dept = dept;
- }
- }
- package com.jcg.examples.entity;
- import java.util.ArrayList;
- import java.util.List;
- import org.springframework.data.annotation.Id;
- import org.springframework.data.annotation.PersistenceConstructor;
- import org.springframework.data.mongodb.core.mapping.DBRef;
- import org.springframework.data.mongodb.core.mapping.Document;
- @Document(collection="person")
- public class Person
- {
- @Id
- private Long personId;
- private String name;
- private int age;
- @DBRef(db="address")
- private List<Address> addresses = new ArrayList<Address>();
- public Person()
- {}
- @PersistenceConstructor
- public Person(Long personId, String name, int age)
- {
- super();
- this.personId = personId;
- this.name = name;
- this.age = age;
- }
- public Long getPersonId()
- {
- return personId;
- }
- public void setPersonId(Long personId)
- {
- this.personId = personId;
- }
- public String getName()
- {
- return name;
- }
- public void setName(String name)
- {
- this.name = name;
- }
- public int getAge()
- {
- return age;
- }
- public void setAge(int age)
- {
- this.age = age;
- }
- public List<Address> getAddresses()
- {
- return addresses;
- }
- public void setAddresses(List<Address> addresses)
- {
- this.addresses = addresses;
- }
- @Override
- public String toString()
- {
- return "Person [personId=" + personId + ", name=" + name + ", age=" + age + ", addresses=" + addresses + "]";
- }
- }
- package com.jcg.examples.jpa.repo;
- import java.util.List;
- import org.springframework.data.repository.CrudRepository;
- import com.jcg.examples.entity.Employee;
- public interface EmployeeRepo extends CrudRepository<Employee, Integer> {
- public List<Employee> searchByfirstName(String firstName);
- }
- package com.jcg.examples.mongo.repo;
- import org.springframework.data.mongodb.repository.Query;
- import org.springframework.data.repository.CrudRepository;
- import com.jcg.examples.entity.Person;
- public interface PersonRepo extends CrudRepository<Person, Long>
- {
- @Query("{'name' : ?0}")
- public Iterable<Person> searchByName(String personName);
- }
- package com.jcg.examples.test;
- import java.util.List;
- import org.springframework.context.support.AbstractApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import org.springframework.core.io.ClassPathResource;
- import org.springframework.data.repository.CrudRepository;
- import com.jcg.examples.entity.Employee;
- import com.jcg.examples.entity.Address;
- import com.jcg.examples.entity.Person;
- import com.jcg.examples.jpa.repo.EmployeeRepo;
- import com.jcg.examples.mongo.repo.AddressRepo;
- import com.jcg.examples.mongo.repo.PersonRepo;
- public class Application
- { private static CrudRepository repository;
- public static void main(String[] args)
- {
- ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new ClassPathResource("spring-mongo-config.xml").getPath());
- PersonRepo personRepo = context.getBean(PersonRepo.class);
- AddressRepo addressRepo = context.getBean(AddressRepo.class);
- Person personAchilles = new Person();
- personAchilles.setPersonId(1l);
- personAchilles.setName("Achilles");
- personRepo.save(personAchilles);
- Person personHektor = new Person();
- personHektor.setPersonId(2l);
- personHektor.setName("Hektor");
- Address address = new Address(1,"221b Baker Street","London NW1","London",12345l);
- List<Address> addresses = personHektor.getAddresses();
- addresses.add(address);
- personAchilles.setAddresses(addresses);
- addressRepo.save(address);
- personRepo.save(personHektor);
- Iterable<Person> personList = personRepo.findAll();
- System.out.println("Person List : ");
- for (Person person : personList)
- {
- System.out.println(person);
- }
- System.out.println("Person with Id 1 is "+personRepo.searchByName("Hektor"));
- context.close();
- //THIS IS THE JPA PART============================================
- ClassPathXmlApplicationContext context1 = new ClassPathXmlApplicationContext("spring-jpa-config.xml");
- repository = context1.getBean(EmployeeRepo.class);
- createEmployee(22, "Saint", "Peter", "Engineering");
- createEmployee(23, "Jack", " Dorsey", "Imaginea");
- createEmployee(24, "Sam", "Fox", "Imaginea");
- context1.close();
- }
- private static void createEmployee(int id, String firstName, String lastName, String dept) {
- Employee emp = new Employee(id, firstName, lastName, dept);
- repository.save(emp);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement