Created
February 9, 2016 18:04
-
-
Save gregturn/1c27939b25a839dce2ad to your computer and use it in GitHub Desktop.
DevNexus example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package com.greglturnquist.devnexus; | |
| import lombok.Data; | |
| import org.springframework.boot.CommandLineRunner; | |
| import org.springframework.boot.SpringApplication; | |
| import org.springframework.boot.autoconfigure.SpringBootApplication; | |
| import org.springframework.context.annotation.Bean; | |
| import org.springframework.data.repository.CrudRepository; | |
| import org.springframework.data.repository.query.Param; | |
| import org.springframework.data.rest.core.annotation.RepositoryRestResource; | |
| import javax.persistence.*; | |
| import java.util.Arrays; | |
| import java.util.List; | |
| @SpringBootApplication | |
| public class DevnexusApplication { | |
| public static void main(String[] args) { | |
| SpringApplication.run(DevnexusApplication.class, args); | |
| } | |
| @Bean | |
| CommandLineRunner init(EmployeeRepository employeeRepository, ManagerRepository managerRepository) { | |
| return (String) -> { | |
| Manager gandalf = managerRepository.save(new Manager("Gandalf")); | |
| Employee frodo = employeeRepository.save(new Employee("Frodo Baggins", "ring bearer")); | |
| Employee bilbo = employeeRepository.save(new Employee("Bilbo Baggins", "burglar")); | |
| frodo.setManager(gandalf); | |
| bilbo.setManager(gandalf); | |
| employeeRepository.save(Arrays.asList(frodo, bilbo)); | |
| }; | |
| } | |
| } | |
| @Data | |
| @Entity | |
| class Employee { | |
| @Id @GeneratedValue private Long id; | |
| private String name; | |
| private String role; | |
| @ManyToOne | |
| private Manager manager; | |
| protected Employee() { /* Thanks JPA! */} | |
| public Employee(String name, String role) { | |
| this.name = name; | |
| this.role = role; | |
| } | |
| } | |
| @RepositoryRestResource | |
| interface EmployeeRepository extends CrudRepository<Employee, Long> { | |
| List<Employee> findByManagerName(@Param("name") String name); | |
| List<Employee> findByRoleContaining(@Param("search") String search); | |
| } | |
| @Data | |
| @Entity | |
| class Manager { | |
| @Id @GeneratedValue private Long id; | |
| private String name; | |
| @OneToMany(mappedBy = "manager") | |
| private List<Employee> employees; | |
| protected Manager() {}; | |
| public Manager(String name) { | |
| this.name = name; | |
| } | |
| } | |
| @RepositoryRestResource | |
| interface ManagerRepository extends CrudRepository<Manager, Long> { | |
| List<Manager> findByEmployeesRoleContaining(@Param("search") String search); | |
| } |
gregturn
commented
Feb 9, 2016
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment