首页 > 解决方案 > 使用 @OneToMany 或 @ManyToMany 定位未映射的类,但导入似乎不错

问题描述

这是我的实体:

@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue
    @Column(name = "user_uuid")
    private UUID id;

    @Column(nullable = false, unique = true)
    private String username;

    private String password;
}

Spring Security 使用 User 表来检查登录的用户。

@Entity
@Table(name = "seller")
public class Seller {

    @Id
    @GeneratedValue
    @Column(name = "seller_uuid")
    private UUID id;

    @ManyToMany
    @JoinTable(
            name = "seller_user",
            joinColumns = @JoinColumn(name = "seller_uuid"),
            inverseJoinColumns = @JoinColumn(name = "users_uuid"))
    private Set<User> users;
}

但这是我在启动时遇到的错误:

Use of @OneToMany or @ManyToMany targeting an unmapped class: seller.modele.entity.Seller.users[user.model.entity.User]

我检查了,我使用了正确的导入(卖家/用户和 javax.persistence.*)

标签: javahibernate

解决方案


我猜你的(Spring?)应用程序没有扫描user.model.entity包或者你没有在你的persistence.xml中列出类的完全限定名。在 Spring 的情况下,您将不得不使用 eg @EntityScan("*"),或者@EntityScan({"seller.modele.entity.*", "user.model.entity.*"})如果您不使用它,您可能必须在<class>user.model.entity.User</class>列出其他类的位置添加到您的 persistence.xml。


推荐阅读