List of usage examples for org.hibernate.transform AliasToBeanResultTransformer transformTuple
@Override
public Object transformTuple(Object[] tuple, String[] aliases)
From source file:be.shad.tsqb.test.TestResultTransformer.java
License:Apache License
@Test public void resultTransformerLoadTest() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { Product product = query.select(Product.class); ManyProperties manyProperties = product.getManyProperties(); List<String> aliases = new ArrayList<>(); List<String> aliasToBeanResultAliases = new ArrayList<>(); for (int i = 1; i < 80; i++) { manyProperties.getClass().getMethod("setProperty" + i, String.class).invoke(manyProperties, ""); aliases.add("manyProperties_property" + i); aliasToBeanResultAliases.add("property" + i); }//w ww. ja va 2 s . co m String[] aliasToBeanResultAliasesArray = aliasToBeanResultAliases.toArray(new String[0]); String[] aliasesArray = aliases.toArray(new String[0]); Object[] valuesArray = new Object[aliasesArray.length]; for (int i = 0; i < aliasesArray.length; i++) { valuesArray[i] = "value" + i; } int outer = 5; int inner = 100000; long time = System.currentTimeMillis(); for (int i = 0; i < outer; i++) { AliasToBeanResultTransformer tf = new AliasToBeanResultTransformer(ManyProperties.class); for (int j = 0; j < inner; j++) { tf.transformTuple(valuesArray, aliasToBeanResultAliasesArray); } } time = (System.currentTimeMillis() - time); logger.debug((time / (double) (outer * inner)) + "ms/transform (original)"); time = System.currentTimeMillis(); for (int i = 0; i < outer; i++) { HqlQueryBuilderParams params = new HqlQueryBuilderParamsImpl(); HqlQuery query = new HqlQuery(); getProjections().appendTo(query, params); for (int j = 0; j < inner; j++) { query.getResultTransformer().transformTuple(valuesArray, aliasesArray); } } time = (System.currentTimeMillis() - time); logger.debug((time / (double) (outer * inner)) + "ms/transform"); }