gpt4 book ai didi

java - Hibernate注释异常: Use of @OneToMany or @ManyToMany targeting an unmapped class

转载 作者:行者123 更新时间:2023-12-01 16:19:52 25 4
gpt4 key购买 nike

我知道这个问题之前已经被提出过很多次,但我仍然很困惑我的情况可能出在哪里:

AnnotationException:使用 @OneToMany 或 @ManyToMany 定位未映射的类:com.collab.collabplatform.persistance.entities.CategoryModel.category2projectRel[com.collab.collabplatform.persistance.keys.Category2ProjectRelKey]

CREATE TABLE IF NOT EXISTS `category2projectRel`
(
`project_id` bigint(20) NOT NULL,
`category_id` bigint(20) NOT NULL,
PRIMARY KEY (`project_id`, `category_id`),
CONSTRAINT `FK_category2project_project_id` FOREIGN KEY (`project_id`) REFERENCES `project` (`id`),
CONSTRAINT `FK_category2project_category_id` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;

以及实体和关键类:

@Entity
@Table(name = "\"category2projectRel\"")
@NoArgsConstructor
@Getter
@Setter
public class Category2ProjectRelModel {

@EmbeddedId
private Category2ProjectRelKey id;

@ManyToOne
@MapsId("project_id")
@JoinColumn(name = "project_id")
private ProjectModel project;

@ManyToOne
@MapsId("category_id")
@JoinColumn(name = "category_id")
private CategoryModel category;
}

&

@Getter
@Setter
@NoArgsConstructor
@Embeddable
public class Category2ProjectRelKey implements Serializable {

@Column(name = "project_id")
Long projectId;

@Column(name = "category_id")
Long categoryId;
}

&

@Entity
@Table(name = "\"category\"")
@NoArgsConstructor
@Getter
@Setter
public class CategoryModel extends BaseEntity {

@Column
@NotNull
private String title;

@Column
private String color;

@OneToMany(mappedBy = "category")
List<Category2ProjectRelKey> category2projectRel;
}

&

@Entity
@Table(name = "\"project\"")
@NoArgsConstructor
@Getter
@Setter
public class ProjectModel extends BaseEntity {

@ManyToOne
@JoinColumn(name="location_id")
private LocationModel location;

@NotNull
@Column
private String title;

@NotNull
@Column(name = "creation_date")
private OffsetDateTime creationDate;

@NotNull
@Column
private String status;

@Column(name = "termination_date")
private OffsetDateTime terminationDate;

@Column
private String description;

@Column
private Boolean virtual;

@OneToMany(mappedBy = "project")
List<Category2ProjectRelKey> category2projectRel;

@OneToMany(mappedBy = "project")
List<Project2TagRelKey> project2tagRel;
}

最佳答案

@ManyToOne @OneToMany @OneToOne @ManyToMany 注解应与实体类(使用 @Entity 注解的类)一起使用

因此,在 CategoryModel 类中,您将 @OneToMany 与类 Category2ProjectRelKey 一起使用,该类不是实体。

@OneToMany(mappedBy = "category") // this annotation should target an entity class
List<Category2ProjectRelKey> category2projectRel;

@Embeddable 类上的注释并不意味着它是一个实体,而是意味着它代表一组可以包含在其他实体中的列。

关于java - Hibernate注释异常: Use of @OneToMany or @ManyToMany targeting an unmapped class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62304406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com