Entity Relationship Diagrams | Mermaid엔티티와 관계 [ : ] 으로 구성됨.엔티티1 : 엔티티 명이며 영문자나 _로 시작해야 하며, 숫자와 - 를 포함할 수 있다.관계 : 두 엔티티 간의 상호 관계를 나타낸다.엔티티2 : 다른 엔티티명.관계 이름 : 엔티티1의 관점에서의 관계를 나타낸다.HOUSE ||--|{ ROOM : contains 를 살펴보자.위 예제는 “집은 하나 이상의 방을 포함할 수 있고, 방은 반드시 하나의 집에만 포함될 수 있다”로 해석된다. 위의 관계명은 엔티티1의 관점인 것을 확인할 수 있다. 엔티티2의 관점에서 봤을 때 동등 라벨은(?)은 추론하기 매우 쉽다.위 문법의 부분만 필수이다. 이를 통해 관계가 없는 엔티티를 보여줄 수 있는데 다이어그램을 ..
Today I Learned
java.lang.NullPointerException: Cannot invoke "org.example.springsecuritystudy.repository.JpaTokenRepository.findTokenByIdentifier(String)" because "this.jpaTokenRepository" is null왜인지 모르겠다..생성 시 CustomCsrfTokenRepository를 잘 연결한다. 처음에는 @Autowired 문제인 줄 알았는데 POST로 접속하게 되면 정상적으로 로그가 다 찍힌다. 그래서 뭐가 문제인지 찾아보았다.이 글 마지막에 있는 Spring Security 6 변화점을 통해 힌트를 얻었다. 공식 문서에서 해당 문구를 찾은 결과 아래와 같이 바뀐점을 찾아 볼 수 있었다...
스프링 시큐리티 인 액션 9장 공부 이후 필터에 @Component어노테이션을 걸고 Config 클래스에서 기본 인증 필터 위치에 등록했었다.@Component // 여기가 문제public class StaticKeyAuthenticationFilter implements Filter { private String authorizationKey; public StaticKeyAuthenticationFilter(@Value("${authorization.key}") String authorizationKey) { this.authorizationKey = authorizationKey; } @Override public void doFilter(ServletRequ..
java.lang.NullPointerException: Cannot invoke "com.keb.kebsmartfarm.entity.Plants.hasGrowingPlant()" because "this.plants" is null일급 컬렉션 적용하면서 plants에서 현재 키우는 식물이 있는지 확인하는 hasPlant메서드를 실행하는데 문제가 생겼다.아무래도 @Builder나 @NoArgsConstructor 중에 문제가 있는 것 같아, 빈 생성자에 new Plants()로 직접 삽입해줬다. 그런데도 문제가 있는 거 보니 @Builder 문제가 맞는 것 같다.이 글을 참고해 생성된 Builder 코드를 직접 살펴보았다.public static class ArduinoKitBuilder { ..