Annotation Type JavaFunction


  • @Target(METHOD)
    @Retention(RUNTIME)
    public @interface JavaFunction
    Using this annotation define User Defined Function based on the Java code.
    Using this annotation, you can define a static method on a class that is annotated with @UserDefinedFunctions, at runtime this method will be available for execution in Teiid queries such as SelectQuery
     
     @UserDefinedFunctions
     public class UserFunctions {
    
       @JavaFunction
       public static String addHello(String value) {
         return "Hello "+value;
       }
     }
    
     
     
    Then above function can be used in annotation queries such as @SelectQuery
     
     @Entity
     @SelectQuery(select ssn as id, addHello(concat(firstname, concat(lastname,','))) as full_name, dob as dob FROM myTable)
     public class Person {
        @Id
        private Long id;
        private String fullName;
        private date dob;
     }
     
     
    Note: functions can be used any where you are writing SQL as part of Entity definition. For an example see UserDefinedFunctions For more information checkout UDF in Teiid.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      org.teiid.metadata.FunctionMethod.Determinism determinism  
      boolean nullOnNull  
      org.teiid.metadata.FunctionMethod.PushDown pushdown  
    • Element Detail

      • nullOnNull

        boolean nullOnNull
        Default:
        false
      • determinism

        org.teiid.metadata.FunctionMethod.Determinism determinism
        Default:
        org.teiid.metadata.FunctionMethod.Determinism.DETERMINISTIC
      • pushdown

        org.teiid.metadata.FunctionMethod.PushDown pushdown
        Default:
        org.teiid.metadata.FunctionMethod.PushDown.CAN_PUSHDOWN