Str
Str

Reputation: 1

'One To Many' attribute value type should not be 'Chat'

У меня выходит ошибка при создании связи 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

Answers (0)

Related Questions