[英]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.