繁体   English   中英

Spring 引导 - Hibernate - 不同模式实体的多租户@ManyToOne(映射)问题

[英]Spring Boot - Hibernate - Multitenancy @ManyToOne (mapping) issue for different schema entities

我正在开发一个基于模式的多租户 Spring 引导应用程序。 我有一个公共表的公共模式,例如“用户”和每个租户的许多模式。 我可以处理很多事情,比如请求路由到不同的模式。

但是,我想要 map 两个字段,其中一个是公共模式 object 的字段,另一个是基于模式的对象字段的字段。 我找不到解决方案。 我可以上两节课:

公共架构 object 是:

@Getter
@Setter
@Entity
@Table(name = "users", uniqueConstraints = {@UniqueConstraint(columnNames = {"email"})})
public class User extends AbstractEntity<UUID> {

    @NotNull
    @Email(message = "Please provide acceptable mail address")
    private String email;

    @Column(length = 60)
    @Getter(onMethod = @__(@JsonIgnore))
    private String password;

    @NotNull
    private String name;

    @NotNull
    private String surname;

    @NotNull
    @Enumerated(EnumType.STRING)
    private Role role = Role.BASIC_USER;

    private boolean confirmed = false;
}

基于租户的架构 object 是:

@Getter
@Setter
@Entity
@Table(name = "company_user")
public class CompanyUser extends AbstractEntity<UUID> {

    @ManyToOne
    @JoinColumn(name= "user_id", referencedColumnName = "id")
    private User user;

    @NotNull
    @Enumerated(EnumType.STRING)
    private Role role = Role.BASIC_USER;
}

当我运行它时,我收到此错误: @OneToOne or @ManyToOne on x.CompanyUser.user references an unknown entity: y.User

如何配置它们以正常运行?

我的猜测是,您的@EntityScan配置错误并且User实体没有被 Spring 拾取,因此对于 Hibernate 不可见。 在抛出异常的行设置一个断点,并尝试找出 Hibernate 认为User未知的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM