public void ormCrudSelectFromClause(SessionProvider sessionProvider) throws Exception { final Class<Zoo_People> clazz = Zoo_People.class; final TableMap<Zoo_People> tableMap = new TableMap<Zoo_People>(); new ClassTableMapBuilder<Zoo_People>(clazz, tableMap).updateTableMap(); final IClassMapperBuilder<Zoo_People> classMapperGenerator = new ClassMapperBuilder<Zoo_People>(clazz, tableMap); final IClassMapper<Zoo_People> classMapper = classMapperGenerator.generate(); assertNotNull(classMapper); final IOrmCRUDQueryGenerator<Zoo_People> ormGenerator = new OrmCRUDQueryGenerator<Zoo_People>(new DefaultDialect(), classMapper); final IOrmCRUDQuery ormCrudQuery = ormGenerator.generate(); assertNotNull(ormCrudQuery); System.out.println(ormCrudQuery.getBaseSelectClause()); System.out.println(ormCrudQuery.getBaseSelectClause("alias.")); System.out.println(ormCrudQuery.getBaseFromClause()); assertEquals("ZOO.PEOPLE.FIRSTCLOB, ZOO.PEOPLE.ID, ZOO.PEOPLE.SECONDBLOB, ZOO.PEOPLE.BIRTHDATE, ZOO.PEOPLE.LASTNAME, ZOO.PEOPLE.FIRSTNAME, ZOO.PEOPLE.FIRSTBLOB, ZOO.PEOPLE.DEATHDATE", ormCrudQuery.getBaseSelectClause()); assertEquals("alias.FIRSTCLOB, alias.ID, alias.SECONDBLOB, alias.BIRTHDATE, alias.LASTNAME, alias.FIRSTNAME, alias.FIRSTBLOB, alias.DEATHDATE", ormCrudQuery.getBaseSelectClause("alias.")); assertEquals("ZOO.PEOPLE", ormCrudQuery.getBaseFromClause()); } }
public void ormCrudWithSchema(SessionProvider sessionProvider) throws Exception { final Class<Zoo_People> clazz = Zoo_People.class; final TableMap<Zoo_People> tableMap = new TableMap<Zoo_People>(); new ClassTableMapBuilder<Zoo_People>(clazz, tableMap).updateTableMap(); final IClassMapperBuilder<Zoo_People> classMapperGenerator = new ClassMapperBuilder<Zoo_People>(clazz, tableMap); final IClassMapper<Zoo_People> classMapper = classMapperGenerator.generate(); assertNotNull(classMapper); final IOrmCRUDQueryGenerator<Zoo_People> ormGenerator = new OrmCRUDQueryGenerator<Zoo_People>(new DefaultDialect(), classMapper); final IOrmCRUDQuery ormCrudQuery = ormGenerator.generate(); assertNotNull(ormCrudQuery); System.out.println(ormCrudQuery.getLoadQuery()); System.out.println(ormCrudQuery.getUpdateQuery()); System.out.println(ormCrudQuery.getDeleteQuery()); System.out.println(ormCrudQuery.getSaveQuery()); }
@Override public final <T> int update(final T object) throws OrmException { @SuppressWarnings("unchecked") final IOrmClassTool<T> ormClassTool = (IOrmClassTool<T>) this.getOrmClassToolMap().getOrmClassTool(object.getClass()); final SqlPerformer sqlExec = this.sqlPerformer(); //CHECK IF OBJECT HAS A 'VERSION' FIELD if (ormClassTool.getClassMapper().getTableMap().isVersionable()) { final int rightVersion = sqlExec.queryForInt(ormClassTool.getOrmCRUDQuery().getBeanVersionQuery(), ormClassTool.getOrmPersistor().primaryKeyAndVersionValues(object)); if ( rightVersion==0 ) { throw new OrmOptimisticLockException("The bean of class [" + object.getClass() + "] cannot be updated. Version in the DB is not the expected one."); } ormClassTool.getOrmPersistor().increaseVersion(object, false); } //UPDATE OBJECT final Object[] pkArgs = ormClassTool.getOrmPersistor().primaryKeyValues(object); final Object[] npkArgs = ormClassTool.getOrmPersistor().notPrimaryKeyValues(object); final Object[] args = new Object[ npkArgs.length + pkArgs.length ]; int i=0; for (final Object value : npkArgs) { args[i++] = value; } for (final Object value : pkArgs) { args[i++] = value; } return sqlExec.update(ormClassTool.getOrmCRUDQuery().getUpdateQuery(), args); }
this.logger.debug("Saving object without using generators"); final Object[] args = ormClassTool.getOrmPersistor().allValues(object); final String sql = ormClassTool.getOrmCRUDQuery().getSaveQueryWithoutGenerators(); result = sqlExec.update(sql, args); } else { this.logger.debug("Saving object using generators"); final Object[] args = ormClassTool.getOrmPersistor().allNotGeneratedValues(object); final String sql = ormClassTool.getOrmCRUDQuery().getSaveQuery(); final GeneratedKeyReader generatedKeyExtractor = new GeneratedKeyReader() {
private void renderSelect(StringBuilder stringBuilder) { final String alias = this.nameSolver.alias(this.clazz); stringBuilder.append("SELECT "); if (this.distinct) { stringBuilder.append("DISTINCT "); } stringBuilder.append(this.ormClassToolMap.getOrmClassTool(this.clazz).getOrmCRUDQuery().getBaseSelectClause(alias + ".") ); stringBuilder.append(" "); }
@Override public final <T> int delete(final T object) throws OrmException { @SuppressWarnings("unchecked") final IOrmClassTool<T> ormClassTool = (IOrmClassTool<T>) this.getOrmClassToolMap().getOrmClassTool(object.getClass()); final SqlPerformer sqlExec = this.sqlPerformer(); return sqlExec.update(ormClassTool.getOrmCRUDQuery().getDeleteQuery(), ormClassTool.getOrmPersistor().primaryKeyValues(object)); }
@Override public final <T> T find(final Class<T> clazz, final Object[] values) throws OrmException { final IOrmClassTool<T> ormClassTool = this.getOrmClassToolMap().getOrmClassTool(clazz); final ResultSetReader<T> resultSetReader = new ResultSetReader<T>() { @Override public T read(final ResultSet resultSet) throws SQLException { if ( resultSet.next() ) { T result = ormClassTool.getOrmPersistor().mapRow("", resultSet, 0); if (resultSet.next()) { throw new OrmNotUniqueResultException("The query execution returned more than one object. Zero or one expected."); } return result; } return null; } }; final SqlPerformer sqlExec = this.sqlPerformer(); sqlExec.setMaxRows(1); return sqlExec.query(ormClassTool.getOrmCRUDQuery().getLoadQuery(), resultSetReader, this.wrapperTypeArray.unWrap(values)); }
public void ormCrudWithSequence(SessionProvider sessionProvider) throws Exception { final Class<People> clazz = People.class; final TableMap<People> tableMap = new TableMap<People>(); new ClassTableMapBuilder<People>(clazz, tableMap).updateTableMap(); final IClassMapperBuilder<People> classMapperGenerator = new ClassMapperBuilder<People>(clazz, tableMap); final IClassMapper<People> classMapper = classMapperGenerator.generate(); assertNotNull(classMapper); final IOrmCRUDQueryGenerator<People> ormGenerator = new OrmCRUDQueryGenerator<People>(new DefaultDialect(), classMapper); final IOrmCRUDQuery ormCrudQuery = ormGenerator.generate(); assertNotNull(ormCrudQuery); System.out.println(ormCrudQuery.getLoadQuery()); System.out.println(ormCrudQuery.getUpdateQuery()); System.out.println(ormCrudQuery.getDeleteQuery()); System.out.println(ormCrudQuery.getSaveQuery()); }
public void ormCrud(SessionProvider sessionProvider) throws Exception { final Class<Employee> clazz = Employee.class; final TableMap<Employee> tableMap = new TableMap<Employee>(); new ClassTableMapBuilder<Employee>(clazz, tableMap).updateTableMap(); final IClassMapperBuilder<Employee> classMapperGenerator = new ClassMapperBuilder<Employee>(clazz, tableMap); final IClassMapper<Employee> classMapper = classMapperGenerator.generate(); assertNotNull(classMapper); final IOrmCRUDQueryGenerator<Employee> ormGenerator = new OrmCRUDQueryGenerator<Employee>(new DefaultDialect(), classMapper); final IOrmCRUDQuery ormCrudQuery = ormGenerator.generate(); assertNotNull(ormCrudQuery); System.out.println(ormCrudQuery.getLoadQuery()); System.out.println(ormCrudQuery.getUpdateQuery()); System.out.println(ormCrudQuery.getDeleteQuery()); System.out.println(ormCrudQuery.getSaveQuery()); }