TIL

2023-11-16 TIL

우성팔 2023. 11. 16.

Entity 연관 관계

DB 테이블에서는 방향이 없었지만 JPA Entity에서는 방향이 존재한다!

 

@Entity
@Table(name = "food")
public class Food {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private double price;

    @ManyToOne
    @JoinColumn(name = "user_id") // @JoinColumn은 외래 키의 주인이 활용하는 애너테이션
    private User user;
}

@JoinColumn을 달고 있는 Food Entity가 외래 키의 주인

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    @OneToMany(mappedBy = "user")
    private List<Food> foodList = new ArrayList<>();
}

@OneToMany(mappedBy = " ") 에서 " " 안에 해당하는 필드명은 User 엔티티의 클래스명이 아닌 Food 엔티티의 user객체

 

따라서 @JoinColumn 가 있으면 외래키의 주인, mappedBy안에 필드명을 갖고 있는 상대 엔티티가 외래키의 주인 이라고 볼 수 있겠다

 

 

Food 엔티티 의 user객체 , User 엔티티의 foodList 객체가 사용되며 서로를 참조하고 있기에 User 엔티티와 Food 엔티티는 양방향 관계라고 할 수 있다.

 

@ManyToOne, OneToMany ...

여기서 앞에Many, One 에 해당하는게 현재 클래스

뒤에 One, Many가 상대 클래스

 

 

@ManyToOne

- N1 관계를 맺어주는 역할을 합니다

 

@ OneToMany

- 1N 관계를 맺어주는 역할을 합니다.

 

@ManyToMany

- NM 관계를 맺어주는 역할을 합니다.

 


  • 정수 내림차순으로 배치하기
  •  
  • 문제 설명 
  • 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
    제한 조건
    • n은 1이상 8000000000 이하인 자연수입니다.

    입출력 예
    n return
    118372 873211
  •  
def solution(n):
	answer = 0
	s = sorted(str(n),reverse=True)
	return int(''.join(s))

 

 

public static long solution(long n) {
        String[] list = String.valueOf(n).split("");
        Arrays.sort(list);
        StringBuilder sb = new StringBuilder();
        
        for (String s : list){
        	sb.append(s);
        }

        return Long.parseLong(sb.reverse().toString());
    }

 

'TIL' 카테고리의 다른 글

2023-11-23 TIL  (0) 2023.11.23
2023-11-21 TIL  (0) 2023.11.21
2023-11-15 TIL  (1) 2023.11.15
2023-11-14 TIL  (1) 2023.11.14
2023-11-13 TIL(Optional)  (5) 2023.11.13

댓글