Example usage for org.hibernate.transform AliasToBeanResultTransformer transformTuple

List of usage examples for org.hibernate.transform AliasToBeanResultTransformer transformTuple

Introduction

In this page you can find the example usage for org.hibernate.transform AliasToBeanResultTransformer transformTuple.

Prototype

@Override
    public Object transformTuple(Object[] tuple, String[] aliases) 

Source Link

Usage

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");
}