回答

收藏

通过调用Java方法为H2数据库中的新行生成默认值

技术问答 技术问答 640 人阅读 | 0 人回复 | 2023-09-12

在生成测试数据时,我希望新行中的字段默认为 lorem    产生的乱码,# U6 B2 x; T2 c1 \5 X
lorem    是Java的Lorem
7 e% B2 q% L: F: Y7 k4 G1 a# wIpsum生成器。3 ]8 X. S9 Q' a/ ^/ }  _% @7 e2 c3 J) }: Q
在Java中调用lorem工具如下:5 {, ^: I+ q7 U# b9 [9 K/ Q
    String lorem = LoremIpsum.getInstance().getWords( 100 ,120 );我试着用这个SQL表定义:
' A& y- g' Y, p5 ^( r6 Y, rString sql =        """        CREATE ALIAS LOREM FOR "com.thedeanda.lorem.LoremIpsum.getInstance().getWords( 100 ,120 )";        CREATE TABLE IF NOT EXISTS thing_    nonsense_ text NOT NULL       row_created_ TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP()       id_ uuid NOT NULL DEFAULT RANDOM_UUID()       CONSTRAINT thing_pkey_ PRIMARY KEY ( id_ )        )        ;        """;但这引发了:/ }- D( Q% ?4 Q8 Y5 \
org.h2.jdbc.JdbcSQLSyntaxErrorException:找不到公共静态Java方法:“
# f* D) R, `" h& c7 @3 F6 lgetInstance()。getWords(100,120)(com.thedeanda.lorem.LoremIpsum)”;SQL语句:
) ]& [. q) B8 O8 _) ^为“8 ~+ W3 i0 N/ L/ Q' \% j
com.thedeanda.lorem.LoremIpsum.getInstance()。getWords创建别名[90139-200]
4 X- B. R+ c( v
什么方法可以包装对?Java调用方法作为用途H2的SQL中的函数?# S% a1 d  J+ ?4 S  U: d" v4 z5 n- D
                                                                8 M4 O; D7 E: D
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则