42 lines
1.6 KiB
Java
42 lines
1.6 KiB
Java
package gr.cite.notification.data.tenant;
|
|
|
|
import gr.cite.notification.common.scope.tenant.TenantScoped;
|
|
import jakarta.persistence.Column;
|
|
import jakarta.persistence.EntityListeners;
|
|
import jakarta.persistence.MappedSuperclass;
|
|
import org.hibernate.annotations.Filter;
|
|
import org.hibernate.annotations.FilterDef;
|
|
import org.hibernate.annotations.ParamDef;
|
|
|
|
import java.io.Serializable;
|
|
import java.util.UUID;
|
|
|
|
@MappedSuperclass
|
|
//@Getter
|
|
//@Setter
|
|
//@NoArgsConstructor
|
|
@FilterDef(name = TenantScopedBaseEntity.TENANT_FILTER, parameters = {@ParamDef(name = TenantScopedBaseEntity.TENANT_FILTER_TENANT_PARAM, type = String.class)})
|
|
@FilterDef(name = TenantScopedBaseEntity.DEFAULT_TENANT_FILTER)
|
|
@Filter(name = TenantScopedBaseEntity.DEFAULT_TENANT_FILTER, condition = "(tenant = tenant is null)")
|
|
@Filter(name = TenantScopedBaseEntity.TENANT_FILTER, condition = "(tenant = (cast(:tenantId as uuid)) or tenant is null)")
|
|
@EntityListeners(TenantListener.class)
|
|
public abstract class TenantScopedBaseEntity implements TenantScoped, Serializable {
|
|
private static final long serialVersionUID = 1L;
|
|
public static final String TENANT_FILTER = "tenantFilter";
|
|
public static final String DEFAULT_TENANT_FILTER = "defaultTenantFilter";
|
|
public static final String TENANT_FILTER_TENANT_PARAM = "tenantId";
|
|
|
|
@Column(name = "tenant", columnDefinition = "uuid", nullable = true)
|
|
private UUID tenantId;
|
|
public static final String _tenantId = "tenantId";
|
|
public UUID getTenantId() {
|
|
return tenantId;
|
|
}
|
|
|
|
@Override
|
|
public void setTenantId(UUID tenantId) {
|
|
this.tenantId = tenantId;
|
|
}
|
|
}
|
|
|