How to use native sql function with HQL query?

后端 未结 3 1979
星月不相逢
星月不相逢 2021-01-25 09:54

I am trying to execute a query like the following, using HQL, that uses a native SQL function (dbms_lob.getlength):

def results = Attachment.execute         


        
3条回答
  •  [愿得一人]
    2021-01-25 10:27

    In Attachment domain add new field Long fileBytesLength and inside mapping closure add the formula for calculating the length of fileBytes field.

    class Attachment {
    
        String createUserName
        String originalFilename
    
        byte[] fileBytes
        Long fileBytesLength
    
        Date dateCreated
        //Other Properties
    
        static mapping = {
            //Other mappings
            fileLength formula: "dbms_lob.getlength(fileBytes)"
        }
    }
    

    And then modify the query to:

    def results = Attachment.executeQuery(
        'select id, originalFilename, fileBytesLength, dateCreated, createUserName '+
        'from Attachment a where a.id not in '+
             '(select attachmentId from SpecVersion sv where sv.attachmentId is not null) '+
        'and a.dateCreated > sysdate - 30')
    

提交回复
热议问题