histTable.setTableQualifier(refTable.getTableQualifier()); getStart().setTable(histTable); getEnd().setTable(histTable); } else if (getMapping().isManyToManyMapping()) { DatabaseTable relationTable = ((ManyToManyMapping)getMapping()).getRelationTable(); histTable.setTableQualifier(relationTable.getTableQualifier()); getStart().setTable(histTable); getEnd().setTable(histTable); DatabaseField endField = (DatabaseField)getEnd(0).clone(); endField.setTable(table); getEndFields().addElement(endField); } else { DatabaseField endField = getEnd(i); endField.setTable(table); historyField = (DatabaseField)getEnd(0).clone(); historyField.setTable(historicalTable); sortedEndFields.add(historyField);
histTable.setTableQualifier(refTable.getTableQualifier()); getStart().setTable(histTable); getEnd().setTable(histTable); } else if (getMapping().isManyToManyMapping()) { DatabaseTable relationTable = ((ManyToManyMapping)getMapping()).getRelationTable(); histTable.setTableQualifier(relationTable.getTableQualifier()); getStart().setTable(histTable); getEnd().setTable(histTable); DatabaseField endField = getEnd(0).clone(); endField.setTable(table); getEndFields().add(endField); } else { DatabaseField endField = getEnd(i); endField.setTable(table); historyField = getEnd(0).clone(); historyField.setTable(historicalTable); sortedEndFields.add(historyField);
histTable.setTableQualifier(refTable.getTableQualifier()); getStart().setTable(histTable); getEnd().setTable(histTable); } else if (getMapping().isManyToManyMapping()) { DatabaseTable relationTable = ((ManyToManyMapping)getMapping()).getRelationTable(); histTable.setTableQualifier(relationTable.getTableQualifier()); getStart().setTable(histTable); getEnd().setTable(histTable); DatabaseField endField = getEnd(0).clone(); endField.setTable(table); getEndFields().add(endField); } else { DatabaseField endField = getEnd(i); endField.setTable(table); historyField = getEnd(0).clone(); historyField.setTable(historicalTable); sortedEndFields.add(historyField);
/** * INTERNAL: * Performs a logical delete (update) on the historical schema. Direct * collections and many to many mappings are maintained through the session * events. */ public void mappingLogicalDelete(ModifyQuery originalQuery, AbstractRecord arguments, AbstractSession session) { SQLDeleteStatement originalStatement = (SQLDeleteStatement)originalQuery.getSQLStatement(); DataModifyQuery historyQuery = new DataModifyQuery(); SQLUpdateStatement historyStatement = new SQLUpdateStatement(); DatabaseTable histTable = getHistoricalTables().get(0); historyStatement.setTable(histTable); Expression whereClause = (Expression)originalStatement.getWhereClause().clone(); DatabaseField endField = getEnd(); whereClause = whereClause.getBuilder().getField(endField).isNull().and(whereClause); historyStatement.setWhereClause(whereClause); AbstractRecord modifyRow = new DatabaseRecord(); AbstractRecord translationRow = arguments.clone(); Object time = getCurrentTime(session); modifyRow.add(getEnd(), time); translationRow.add(getEnd(), time); historyStatement.setModifyRow(modifyRow); historyQuery.setSQLStatement(historyStatement); historyQuery.setModifyRow(modifyRow); session.executeQuery(historyQuery, translationRow); } }
/** * INTERNAL: * Performs a logical delete (update) on the historical schema. Direct * collections and many to many mappings are maintained through the session * events. */ public void mappingLogicalDelete(ModifyQuery originalQuery, AbstractRecord arguments, AbstractSession session) { SQLDeleteStatement originalStatement = (SQLDeleteStatement)originalQuery.getSQLStatement(); DataModifyQuery historyQuery = new DataModifyQuery(); SQLUpdateStatement historyStatement = new SQLUpdateStatement(); DatabaseTable histTable = (DatabaseTable)getHistoricalTables().elementAt(0); historyStatement.setTable(histTable); Expression whereClause = (Expression)originalStatement.getWhereClause().clone(); DatabaseField endField = getEnd(); whereClause = whereClause.getBuilder().getField(endField).isNull().and(whereClause); historyStatement.setWhereClause(whereClause); AbstractRecord modifyRow = new DatabaseRecord(); AbstractRecord translationRow = (AbstractRecord)arguments.clone(); Object time = getCurrentTime(session); modifyRow.add(getEnd(), time); translationRow.add(getEnd(), time); historyStatement.setModifyRow(modifyRow); historyQuery.setSQLStatement(historyStatement); historyQuery.setModifyRow(modifyRow); session.executeQuery(historyQuery, translationRow); } }
/** * INTERNAL: * Performs a logical delete (update) on the historical schema. Direct * collections and many to many mappings are maintained through the session * events. */ public void mappingLogicalDelete(ModifyQuery originalQuery, AbstractRecord arguments, AbstractSession session) { SQLDeleteStatement originalStatement = (SQLDeleteStatement)originalQuery.getSQLStatement(); DataModifyQuery historyQuery = new DataModifyQuery(); SQLUpdateStatement historyStatement = new SQLUpdateStatement(); DatabaseTable histTable = getHistoricalTables().get(0); historyStatement.setTable(histTable); Expression whereClause = (Expression)originalStatement.getWhereClause().clone(); DatabaseField endField = getEnd(); whereClause = whereClause.getBuilder().getField(endField).isNull().and(whereClause); historyStatement.setWhereClause(whereClause); AbstractRecord modifyRow = new DatabaseRecord(); AbstractRecord translationRow = arguments.clone(); Object time = getCurrentTime(session); modifyRow.add(getEnd(), time); translationRow.add(getEnd(), time); historyStatement.setModifyRow(modifyRow); historyQuery.setSQLStatement(historyStatement); historyQuery.setModifyRow(modifyRow); session.executeQuery(historyQuery, translationRow); } }