package org.javers.repository.sql.finders; import org.javers.repository.sql.schema.TableNameProvider; import org.polyjdbc.core.query.SelectQuery; import static org.javers.repository.sql.schema.FixedSchemaFactory.GLOBAL_ID_OWNER_ID_FK; import static org.javers.repository.sql.schema.FixedSchemaFactory.GLOBAL_ID_PK; class GlobalIdFilter extends SnapshotFilter { private final long globalIdPk; private final boolean aggregate; GlobalIdFilter(TableNameProvider tableNameProvider, long globalIdPk, boolean aggregate) { super(tableNameProvider); this.globalIdPk = globalIdPk; this.aggregate = aggregate; } @Override void addWhere(SelectQuery query) { if (!aggregate) { query.where("g." + GLOBAL_ID_PK + " = " + globalIdPk); } else { query.where( "( g." + GLOBAL_ID_PK + " = " + globalIdPk + " OR g." + GLOBAL_ID_OWNER_ID_FK + " = " + globalIdPk + ")"); } } }