[JPA Error] Cannot invoke "org.hibernate.mapping.ToOne.getReferencedEntityName()" because "toOne" is null ํ•ด๊ฒฐ

ohahsisยท2024๋…„ 5์›” 10์ผ

๐Ÿ“ ์ฝ”๋“œ

  • ๊ธ€์„ ์˜ฌ๋ฆด Note, ํ•ด์‹œํƒœ๊ทธ๋ฅผ ์ €์žฅํ•˜๋Š” Hashtag, ๊ทธ๋ฆฌ๊ณ  ์ค‘๊ฐ„ ํ…Œ์ด๋ธ”์ธ NoteHashtag ๊ฐ€ ์žˆ๋‹ค.

Note

    @OneToMany(mappedBy = "note")
    private Set<Hashtag> hashtags = new HashSet<>();

Hashtag

    @OneToMany(mappedBy = "hashtags")
    private Set<Note> notes = new HashSet<>();

NoteHashtag

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "note_id")
    private Note note;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "hashtag_id")
    private Hashtag hashtag;

๐Ÿ“ Error

๋ฉ”์‹œ์ง€

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Cannot invoke "org.hibernate.mapping.ToOne.getReferencedEntityName()" because "toOne" is null

๋ถ„์„

  • ToOne ์— ํ•ด๋‹นํ•˜๋Š” Note ๊ฐ€ null ์ด ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง์ธ ๊ฒƒ ๊ฐ™๋‹ค.
  • NoteHashtag ๋Š” Note ์— ์ข…์†์ ์ธ ๊ฐœ๋…์ด๊ธฐ๋•Œ๋ฌธ์— ํ•ด๋‹น ํ•„๋“œ๋กœ ์ฐพ์•„๊ฐ€์„œ cascade = CascadeType.ALL ์˜ต์…˜์„ ๊ฑธ์–ด์ฃผ๋ฉด ๋œ๋‹ค๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆฌ๊ณ  Note ์™€ Hashtag ๊ฐ๊ฐ์— ์ฐพ์•„๊ฐ€๋ณด๋‹ˆ FK ์ฐธ์กฐ(?)๊นŒ์ง€ ์ž˜๋ชป ๋˜์–ด ์žˆ์—ˆ๋‹ค!
  • N:M ๊ด€๊ณ„์ธ ํ…Œ์ด๋ธ” Note ์™€ Hashtag ๋ฅผ ์ด์–ด์ค„ ์ค‘๊ฐ„ ํ…Œ์ด๋ธ” NoteHashtag ๋ฅผ ๋งŒ๋“ค์–ด๋†“๊ณ , FK ๋Š” ๋˜‘๊ฐ™์ด Note ์™€ Hashtag ์„œ๋กœ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

๐Ÿ“ ํ•ด๊ฒฐ

  • cascade = CascadeType.ALL ์˜ต์…˜์„ ๊ฑธ์–ด์ฃผ์—ˆ๋‹ค.
  • NoteHashtag ์— ์žˆ๋Š” FK ๋ฅผ ๋˜‘๋ฐ”๋กœ ์ฐธ์กฐํ•˜๋„๋ก ๋ฐ”๊พธ๊ณ , mappedBy ์˜ ๊ฐ’ ๋˜ํ•œ ํ•ด๋‹น ํ•„๋“œ์˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋‹ค.
  • ์ •์ƒ ๋™์ž‘!

Note

    @OneToMany(mappedBy = "note", cascade = CascadeType.ALL)
    private Set<NoteHashtag> noteHashtags = new HashSet<>();

Hashtag

    @OneToMany(mappedBy = "hashtag", cascade = CascadeType.ALL)
    private Set<NoteHashtag> noteHashtags = new HashSet<>();

์ฐธ๊ณ  ์ž๋ฃŒ

profile
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€