当前位置: 首页 > 知识库问答 >
问题:

如何解决将非集合映射为@OneTomany、@ManyTomany或@CollectionOfElements的非法尝试

阮华美
2023-03-14
@Entity
@Table(name = "user_roles_activity")
public class UserRolesActivity {

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

    @Column(name = "user_id")
    private Long userId;

    @Column(name = "role_id")
    private Long roleId;

    @OneToMany
    @JoinTable(name = "user_role_activities_mapping", joinColumns = @JoinColumn(name = "user_roles_id"), inverseJoinColumns = @JoinColumn(name = "activity_id"))
    private Activity activity;

}
@Entity
@Table(name = "activities")
public class Activity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "name")
    private String name;

}

共有1个答案

华易安
2023-03-14

从错误:

非法尝试将非集合映射为@onetomany、@manytomany或@collectionofelements

您试图在不是集合的东西上建立OneToMany关系。因此,如果根据您的需求,每个UserRolesActivity映射到许多活动是有意义的,那么您可以使用如下内容:

@Entity
@Table(name = "user_roles_activity")
public class UserRolesActivity {

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

@Column(name = "user_id")
private Long userId;

@Column(name = "role_id")
private Long roleId;

@OneToMany
@JoinTable(name = "user_role_activities_mapping", joinColumns = @JoinColumn(name = "user_roles_id"), inverseJoinColumns = @JoinColumn(name = "activity_id"))
private List<Activity> activities;

}
 类似资料:
  • 问题内容: 我有一个问题,它给我错误: 无法创建sessionFactory object.org.hibernate.AnnotationException:非法尝试将非集合映射为@ OneToMany,@ ManyToMany或@CollectionOfElements:nl.scalda.pasimo.model.employeemanagement.EducationTeam.coachG

  • 我有三个名称为depense、benifice和categories的实体,当我想在category实体中获取beneice_c和Depenese_C时。我会看到这个错误 依赖实体 Benfice实体 Categorie entite>公共类Categories实现Serializable{

  • 问题内容: 我尝试注释属性访问器,其返回值是一个映射,如下所示: 这符合hibernate用户指南(第2.2.5.3.4。节)。但是,我得到: 问题答案: 查看主题6.1。在此链接上的永久性收藏。 通过链接,Hibernate要求将集合值持久化字段声明为接口类型。实际的接口可能是或任何您喜欢的接口(“您喜欢的任何东西”意味着您将不得不编写org.hibernate.usertype.UserCol

  • 问题内容: 我正在使用“hibernate注释”找到我的脚,并且遇到了一个问题,希望有人可以提供帮助。 我有2个实体,分别是Section和ScopeTopic。该部分具有List类成员,因此具有一对多关系。运行单元测试时,出现此异常: 使用@OneToMany或@ManyToMany定位未映射的类:com.xxx.domain.Section.scopeTopic [com.xxx.domain

  • 你可以定义一个新的名或从下拉式菜单中选择导入到现有的表或集合。 【注意】如果你在“目标表”或“目标集合”输入一个新的名,在“是新的”内的框将会自动显示为“是”。 导入多个表或集合时,所有表或集合会显示在列表中。

  • 问题内容: 我正在尝试跟随hql查询执行 但它显示 问题答案: 是一个。因此,它没有名为的属性。 是this 元素 的一个属性。 您可以通过 加入 集合 而不是取消引用 来解决此问题: