通过调用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
解决方案: |
|
|
|
|
|