multi left outer join

This commit is contained in:
kimyonghwa
2019-07-18 18:18:58 +09:00
parent a03a263adf
commit e736b92975
5 changed files with 91 additions and 7 deletions

View File

@@ -1,18 +1,27 @@
package com.rest.api.controller;
import com.rest.api.entity.Employ;
import com.rest.api.entity.Member;
import com.rest.api.repo.EmployJpaRepo;
import com.rest.api.repo.MemberJpaRepo;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@RequiredArgsConstructor
@Slf4j
@Controller
public class HelloController {
private static final String HELLO = "helloworld-nice to meet you";
private final EmployJpaRepo employJpaRepo;
private final MemberJpaRepo memberJpaRepo;
@Setter
@Getter
public static class Hello {
@@ -21,23 +30,27 @@ public class HelloController {
@GetMapping(value = "/helloworld/string")
@ResponseBody
public String helloworldString() {
public Employ helloworldString() {
Employ employ = Employ.builder().employee(memberJpaRepo.findById(1L).get()).build();
employ = employJpaRepo.save(employ);
log.debug("Helloworld");
log.info("Helloworld");
return HELLO;
return employ;
}
@GetMapping(value = "/helloworld/json")
@ResponseBody
public Hello helloworldJson() {
Hello hello = new Hello();
hello.message = HELLO;
return hello;
public Employ helloworldJson() {
return employJpaRepo.findById(2L).get();
}
@GetMapping(value = "/helloworld/page")
public String helloworld() {
return HELLO;
memberJpaRepo.save(Member.builder().email("happydaddy@naver.com").name("happydaddy").build());
memberJpaRepo.save(Member.builder().email("angrydaddy@naver.com").name("angrydaddy").build());
return "true";
// return HELLO;
}
@GetMapping("/helloworld/long-process")

View File

@@ -0,0 +1,29 @@
package com.rest.api.entity;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@NoArgsConstructor
@Entity
@Getter
public class Employ {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long employId;
@OneToOne
@JoinColumn(name = "employer_id")
private Member employer;
@OneToOne
@JoinColumn(name = "employee_id")
private Member employee;
@Builder
public Employ(Member employer, Member employee) {
this.employer = employer;
this.employee = employee;
}
}

View File

@@ -0,0 +1,28 @@
package com.rest.api.entity;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
@NoArgsConstructor
@Entity
@Getter
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long uid;
@Column(name = "email", unique = true)
private String email;
private String name;
private Date createDate;
@Builder
public Member(String email, String name) {
this.email = email;
this.name = name;
this.createDate = new Date();
}
}

View File

@@ -0,0 +1,7 @@
package com.rest.api.repo;
import com.rest.api.entity.Employ;
import org.springframework.data.jpa.repository.JpaRepository;
public interface EmployJpaRepo extends JpaRepository<Employ, Long> {
}

View File

@@ -0,0 +1,7 @@
package com.rest.api.repo;
import com.rest.api.entity.Member;
import org.springframework.data.jpa.repository.JpaRepository;
public interface MemberJpaRepo extends JpaRepository<Member, Long> {
}