0

Пытаюсь добавить связи в hibernate и мне нужно что бы поле на которое ссылается другое поле было String'ом но код не компилируется так, есть какие то обходы этой проблемы?

кстать если что вот текст ошибки:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: @OneToOne or @ManyToOne on ua.prin.rom.entity.ShortLink.longLink references an unknown entity: java.lang.String

package ua.prin.rom.entity;

import javax.persistence.*; import java.util.Objects;

@Entity public class ShortLink {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false)
@ManyToOne(fetch = FetchType.EAGER)
private String longLink;

@Column(nullable = false)
private String shortlink;

2 Answers2

0

Видимо поле должно быть не типа String, а другого класса с аннотацией @Entity. Как например у класса Person поле класса Address.

0

У вас в ошибке ясно прописано ua.prin.rom.entity.ShortLink.longLink references an unknown entity, вы указали связь, но не указали на что ссылаетесь. Вам необходимо добавить @JoinColumn, а с обратной стороны mappedBy

azlov
  • 1,775
  • 2
  • 6
  • 7
  • Да, щас он как добавит mappedBy в классе String – First Sin Aug 12 '20 at 06:56
  • @FirstSin, именно поэтому человек может сделать вывод, что он пишет что-то не так и обратиться к документации снова – azlov Aug 12 '20 at 07:13