Reputation: 1
У меня выходит ошибка при создании связи OneToMany Мой User класс:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Embedded
@AttributeOverride(name = "birthDate", column = @Column(name = "birth_date"))
private PersonalInfo personalInfo;
@Column(unique = true)
private String username;
@Enumerated(EnumType.STRING)
private Role role;
@Builder.Default
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<Chat> chat = new LinkedList<>();
}
Мой класс Chat:
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@Table(name = "chats")
public class Chat {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne(targetEntity = User.class, fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "users")
@OrderBy("username ASC, firstname DESC")
private User user;
private String name;
}
ошибка компиляции: 'One To Many' attribute value type should not be 'Chat' А так же выходит ошибка во время выполнения: Exception in thread "main" org.hibernate.AnnotationException: Association 'Entity.User.chat' targets the type 'Entity.Chat' which does not belong to the same persistence unit at org.hibernate.boot.model.internal.CollectionBinder.detectManyToManyProblems(CollectionBinder.java:2610) at org.hibernate.boot.model.internal.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:2175) at org.hibernate.boot.model.internal.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:1620) at org.hibernate.boot.model.internal.CollectionBinder$1.secondPass(CollectionBinder.java:1604) at org.hibernate.boot.model.internal.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:45) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1842) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.processSecondPasses(InFlightMetadataCollectorImpl.java:1800) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:334) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:129) at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:449) at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:101) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:949) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:999) at org.example.HibernateRunner.main(HibernateRunner.java:28)
Upvotes: -1
Views: 27