2015-02-09 59 views
1

使用JOOQ(3.5.1)生成java代碼時如果過程具有帶數組類型字段的Table返回類型,則會收到空指針異常。使用ARRAY輸出類型從PostgreSQL過程生成JOOQ

CREATE OR REPLACE FUNCTION func1(IN param1 integer) 
    RETURNS TABLE(result1 integer, result2 integer[]) AS 
    .... 

發生器錯誤:

Error while generating table record public.func1  
java.lang.NullPointerException 
at org.jooq.impl.DefaultDataType.getDataType(DefaultDataType.java:637) 
at org.jooq.impl.DefaultDataType.getDataType(DefaultDataType.java:828) 
at org.jooq.impl.DefaultDataType.getType(DefaultDataType.java:841) 
at org.jooq.util.JavaGenerator.getType(JavaGenerator.java:3220) 
at org.jooq.util.JavaGenerator.getType(JavaGenerator.java:3185) 
at org.jooq.util.JavaGenerator.getType(JavaGenerator.java:3194) 
at org.jooq.util.JavaGenerator.getJavaType(JavaGenerator.java:3173) 
at org.jooq.util.JavaGenerator.getJavaType(JavaGenerator.java:3169) 
at org.jooq.util.JavaGenerator.getRowType(JavaGenerator.java:935) 
at org.jooq.util.JavaGenerator.generateRecord(JavaGenerator.java:700) 
at org.jooq.util.JavaGenerator.generateRecord(JavaGenerator.java:659) 
at org.jooq.util.JavaGenerator.generateRecords(JavaGenerator.java:648) 
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:309) 
at org.jooq.util.JavaGenerator.generate(JavaGenerator.java:247) 
at org.jooq.util.GenerationTool.run(GenerationTool.java:402) 
at org.jooq.util.GenerationTool.main(GenerationTool.java:167) 
at org.jooq.util.GenerationTool$main.call(Unknown Source) 
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116) 
+0

'param1'的缺失類型可能與此問題有關?我不能在數據庫中獲得這樣的功能,但也許你可以,現在這對代碼生成器有副作用? – 2015-02-10 14:29:27

+0

編號改變最後一個參數類型爲文本擺脫這個錯誤 – 2015-02-10 14:38:51

+0

我的意思是你在參數'IN參數1「。它可能應該像'IN param1 integer' ... – 2015-02-10 14:51:58

回答