mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#1174 - ENH: Support mapping @TenantId to an entity bean via @ManyToOne
This commit is contained in:
@@ -1204,7 +1204,7 @@ public class BeanDescriptor<T> implements BeanType<T> {
|
||||
if (tenant != null && !query.isNativeSql()) {
|
||||
Object tenantId = ebeanServer.currentTenantId();
|
||||
if (tenantId != null) {
|
||||
query.where().eq(tenant.getName(), tenantId);
|
||||
tenant.addTenant(query, tenantId);
|
||||
}
|
||||
}
|
||||
if (isDocStoreOnly()) {
|
||||
@@ -1872,6 +1872,29 @@ public class BeanDescriptor<T> implements BeanType<T> {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a non read only reference bean without checking cacheSharableBeans.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public T createReference(Object id, PersistenceContext pc) {
|
||||
|
||||
try {
|
||||
EntityBean eb = createEntityBean();
|
||||
id = convertSetId(id, eb);
|
||||
EntityBeanIntercept ebi = eb._ebean_getIntercept();
|
||||
ebi.setBeanLoader(ebeanServer);
|
||||
ebi.setReference(idPropertyIndex);
|
||||
if (pc != null) {
|
||||
contextPut(pc, id, eb);
|
||||
ebi.setPersistenceContext(pc);
|
||||
}
|
||||
return (T) eb;
|
||||
|
||||
} catch (Exception ex) {
|
||||
throw new PersistenceException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the bean property traversing the object graph and taking into
|
||||
* account inheritance.
|
||||
@@ -2725,7 +2748,7 @@ public class BeanDescriptor<T> implements BeanType<T> {
|
||||
*/
|
||||
public void setTenantId(EntityBean entityBean, Object tenantId) {
|
||||
if (tenant != null) {
|
||||
tenant.setValue(entityBean, tenantId);
|
||||
tenant.setTenantValue(entityBean, tenantId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user