如何在多租户环境中使用JPA @Column(unique = true)?

The*_*heo 4 eclipselink java-ee multi-tenant jpa-2.0

我想将我的应用程序转换为使用共享表支持多租户(即每个表都获得一个租户ID).显然,我将无法继续使用@Column(unique = true),因为它会强化所有租户的唯一性,这是我不想要的.

我正在使用带有EclipseLink的Glassfish 3.1.1.是否有办法使@Column(unique = true)每个租户(而不是每个表)具有唯一性.或者我是否必须在业务逻辑中强制执行此操作?

The*_*heo 10

也可以在当时@Table注释上指定唯一性约束,例如

@Table(name = "USERS", uniqueConstraints = @UniqueConstraint(columnNames = {"TENANT_ID", "username"}))
Run Code Online (Sandbox Code Playgroud)