我如何为单个应用程序使用多个数据源来分离公司明智的数据

Tan*_*ury 5 java eclipselink spring-data

假设我的实体模型现在如下

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
@Builder(builderClassName = "Builder", toBuilder = true)
@Entity
@Table(name = "clients")
public class Client extends Person {
    @Column(name = "initials")
    private String initials;

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

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "company_Id")
    private Company company;
}
Run Code Online (Sandbox Code Playgroud)

所有记录当前都存储在具有单个数据源的同一个表中。但我想改变这一点。我希望每个公司都有相同的数据库,并且公司特定的数据将插入到以下公司数据库中。但服务和存储库方法将是相同的。我想以不需要更改我的服务和存储库方法的方式实现这一点。

我从这个链接中得到了一些想法。 https://blogs.sap.com/2016/12/19/developing-multi-tenant-applications-on-hcp-persistence-multitenancy-part-4/。但我想要一些关于实施的更复杂的指南。

Tan*_*ury 0

最后使用 hibernate 作为 ORM 并使用多租户能够在 mysql 数据库中解决这个问题。eclipse link 不支持使用 mysql 的多租户。它们需要 Oracle Rack。