Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="UTF-8"?>
- <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>com.HibernateAnnotationMapping</groupId>
- <artifactId>HibernateAnnotationMappingSpring</artifactId>
- <version>1.0-SNAPSHOT</version>
- <dependencies>
- <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
- <dependency>
- <groupId>org.springframework.data</groupId>
- <artifactId>spring-data-jpa</artifactId>
- <version>1.11.1.RELEASE</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>6.0.6</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
- <version>5.2.10.Final</version>
- </dependency>
- </dependencies>
- </project>
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
- xmlns:tx="http://www.springframework.org/schema/tx" 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-3.2.xsd
- http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd">
- <!--Directory to scan for repository classes-->
- <jpa:repositories base-package="repository" />
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName">
- <value>com.mysql.jdbc.Driver</value>
- </property>
- <property name="url">
- <value>jdbc:mysql://localhost:3306/spring</value>
- </property>
- <property name="username">
- <value>root</value>
- </property>
- <property name="password">
- <value>root</value>
- </property>
- </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.MySQL5Dialect</prop>
- <prop key="hibernate.show_sql">true</prop>
- <prop key="hibernate.format_sql">false</prop>
- <prop key="hibernate.hbm2ddl.auto">create</prop>
- </props>
- </property>
- </bean>
- <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
- <property name="entityManagerFactory" ref="entityManagerFactory"/>
- </bean>
- </beans>
- package entity;
- /**
- * Created by poryvai on 16.08.2017.
- */
- import javax.persistence.*;
- import java.io.Serializable;
- @Entity
- @Table(name = "address")
- public class Address implements Serializable{
- private static final long serialVersionUID = -3276852226295894319L;
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private long id;
- @Column(name = "COUNTRY")
- private String country;
- @Column(name = "CITY")
- private String city;
- @Column(name = "STREET")
- private String street;
- @Column(name = "POST_CODE", length = 10)
- private String postCode;
- public Address() {
- }
- public Long getId() {
- return id;
- }
- public void setId(Long id) {
- this.id = id;
- }
- public String getCountry() {
- return country;
- }
- public void setCountry(String country) {
- this.country = country;
- }
- public String getCity() {
- return city;
- }
- public void setCity(String city) {
- this.city = city;
- }
- public String getStreet() {
- return street;
- }
- public void setStreet(String street) {
- this.street = street;
- }
- public String getPostCode() {
- return postCode;
- }
- public void setPostCode(String postCode) {
- this.postCode = postCode;
- }
- @Override
- public String toString() {
- return "Address{" +
- "id=" + id +
- ", country='" + country + ''' +
- ", city='" + city + ''' +
- ", street='" + street + ''' +
- ", postCode='" + postCode + ''' +
- '}';
- }
- }
- package entity;
- /**
- * Created by poryvai on 16.08.2017.
- */
- import javax.persistence.*;
- import java.io.Serializable;
- import java.sql.Date;
- import java.util.*;
- @Entity
- @Table(name = "employee")
- public class Employee implements Serializable {
- private static final long serialVersionUID = -7544538017359643203L;
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
- @Column(name = "FIRST_NAME")
- private String firstName;
- @Column(name = "LAST_NAME")
- private String lastName;
- @Column(name = "BIRTHDAY")
- private Date birthday;
- @OneToOne(cascade = CascadeType.ALL)
- private Address address;
- @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
- @JoinTable(
- name = "EMPL_PROJ",
- joinColumns = @JoinColumn(name = "EMPLOYEE_ID"),
- inverseJoinColumns = @JoinColumn(name = "PROJECT_ID")
- )
- private Set<Project> projects;
- public Employee() {
- }
- public Long getId() {
- return id;
- }
- public void setId(Long 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 Date getBirthday() {
- return birthday;
- }
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
- public Address getAddress() {
- return address;
- }
- public void setAddress(Address address) {
- this.address = address;
- }
- public Set<Project> getProjects() {
- return projects;
- }
- public void setProjects(Set<Project> projects) {
- this.projects = projects;
- }
- @Override
- public String toString() {
- return "Employee{" +
- "id=" + id +
- ", firstName='" + firstName + ''' +
- ", lastName='" + lastName + ''' +
- ", birthday=" + birthday +
- ", address=" + address +
- '}';
- }
- }
- package entity;
- import javax.persistence.*;
- import java.io.Serializable;
- import java.util.*;
- /**
- * Created by poryvai on 16.08.2017.
- */
- @Entity
- @Table(name = "project")
- public class Project implements Serializable{
- private static final long serialVersionUID = 1796556740932985128L;
- @Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
- private Long id;
- @Column(name = "TITLE")
- private String title;
- @ManyToMany(mappedBy = "projects")
- private Set<Employee> employees;
- public Project() {
- }
- public Long getId() {
- return id;
- }
- public void setId(Long id) {
- this.id = id;
- }
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- public Set<Employee> getEmployees() {
- return employees;
- }
- public void setEmployees(Set<Employee> employees) {
- this.employees = employees;
- }
- @Override
- public String toString() {
- return "Project{" +
- "id=" + id +
- ", title='" + title + ''' +
- '}';
- }
- }
- package repository;
- import entity.Address;
- import org.springframework.data.jpa.repository.JpaRepository;
- import org.springframework.stereotype.Repository;
- /**
- * Created by poryvai on 16.08.2017.
- */
- @Repository
- public interface AddressRepository extends JpaRepository<Address, Long> {
- }
- package repository;
- import org.springframework.data.jpa.repository.JpaRepository;
- import entity.Employee;
- import org.springframework.data.jpa.repository.Query;
- import org.springframework.stereotype.Repository;
- /**
- * Created by poryvai on 16.08.2017.
- */
- @Repository
- public interface EmployeeRepository extends JpaRepository<Employee, Long> {
- @Query(value="SELECT * FROM employee WHERE FIRST_NAME=?1 AND LAST_NAME=?2", nativeQuery = true)
- Employee findByFirstNameAndLastName(String firstName, String lastName);
- Employee findByLastName(String lastName);
- }
- package repository;
- import org.springframework.data.jpa.repository.JpaRepository;
- import entity.Project;
- import org.springframework.stereotype.Repository;
- /**
- * Created by poryvai on 16.08.2017.
- */
- @Repository
- public interface ProjectRepository extends JpaRepository<Project, Long> {
- }
- package domain;
- import entity.Address;
- import entity.Employee;
- import entity.Project;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import repository.AddressRepository;
- import repository.EmployeeRepository;
- import repository.ProjectRepository;
- import java.sql.Date;
- import java.sql.SQLException;
- import java.util.Calendar;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- /**
- * Created by poryvai on 16.08.2017.
- */
- public class Domain {
- public static void main(String[] args) throws SQLException{
- 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();
- address.setId(1L);
- address.setCountry("DC");
- address.setCity("Gotham city");
- address.setStreet("Arkham street");
- address.setPostCode("12345");
- Project project = new Project();
- project.setId(1L);
- project.setTitle("Gotham PD");
- Employee employee = new Employee();
- employee.setId(1L);
- employee.setFirstName("James");
- employee.setLastName("Gordon");
- Calendar calendar = Calendar.getInstance();
- calendar.set(1939, Calendar.MAY,1);
- employee.setBirthday(new Date(calendar.getTime().getTime()));
- employee.setAddress(address);
- Set<Employee> employees = new HashSet<Employee>();
- employees.add(employee);
- project.setEmployees(employees);
- Set<Project> projects = new HashSet<Project>();
- projects.add(project);
- employee.setProjects(projects);
- addressRepository.save(address);
- employeeRepository.save(employee);
- projectRepository.save(project);
- List<Employee> employeeList = employeeRepository.findAll();
- for(Employee e: employeeList){
- System.out.println(e);
- }
- Employee employee1 = employeeRepository.findOne(1L);
- System.out.println(employeeRepository.findByFirstNameAndLastName("James","Gordon"));
- System.out.println(employeeRepository.findByLastName("Gordon"));
- }
- }
- SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
- SLF4J: Defaulting to no-operation (NOP) logger implementation
- SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
- Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: No persistence unit with name 'jpaData' found
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
- 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.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1081)
- at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:856)
- at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
- at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
- at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
- at domain.Domain.main(Domain.java:24)
- Caused by: java.lang.IllegalArgumentException: No persistence unit with name 'jpaData' found
- at org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager.obtainPersistenceUnitInfo(DefaultPersistenceUnitManager.java:699)
- at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.determinePersistenceUnitInfo(LocalContainerEntityManagerFactoryBean.java:372)
- at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:329)
- at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370)
- at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
- ... 12 more
- Process finished with exit code 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement