multi left outer join
This commit is contained in:
@@ -1,18 +1,27 @@
|
|||||||
package com.rest.api.controller;
|
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.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Controller
|
@Controller
|
||||||
public class HelloController {
|
public class HelloController {
|
||||||
|
|
||||||
private static final String HELLO = "helloworld-nice to meet you";
|
private static final String HELLO = "helloworld-nice to meet you";
|
||||||
|
|
||||||
|
private final EmployJpaRepo employJpaRepo;
|
||||||
|
private final MemberJpaRepo memberJpaRepo;
|
||||||
|
|
||||||
@Setter
|
@Setter
|
||||||
@Getter
|
@Getter
|
||||||
public static class Hello {
|
public static class Hello {
|
||||||
@@ -21,23 +30,27 @@ public class HelloController {
|
|||||||
|
|
||||||
@GetMapping(value = "/helloworld/string")
|
@GetMapping(value = "/helloworld/string")
|
||||||
@ResponseBody
|
@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.debug("Helloworld");
|
||||||
log.info("Helloworld");
|
log.info("Helloworld");
|
||||||
return HELLO;
|
return employ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/helloworld/json")
|
@GetMapping(value = "/helloworld/json")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Hello helloworldJson() {
|
public Employ helloworldJson() {
|
||||||
Hello hello = new Hello();
|
return employJpaRepo.findById(2L).get();
|
||||||
hello.message = HELLO;
|
|
||||||
return hello;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/helloworld/page")
|
@GetMapping(value = "/helloworld/page")
|
||||||
public String helloworld() {
|
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")
|
@GetMapping("/helloworld/long-process")
|
||||||
|
|||||||
29
src/main/java/com/rest/api/entity/Employ.java
Normal file
29
src/main/java/com/rest/api/entity/Employ.java
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
28
src/main/java/com/rest/api/entity/Member.java
Normal file
28
src/main/java/com/rest/api/entity/Member.java
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
7
src/main/java/com/rest/api/repo/EmployJpaRepo.java
Normal file
7
src/main/java/com/rest/api/repo/EmployJpaRepo.java
Normal 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> {
|
||||||
|
}
|
||||||
7
src/main/java/com/rest/api/repo/MemberJpaRepo.java
Normal file
7
src/main/java/com/rest/api/repo/MemberJpaRepo.java
Normal 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> {
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user