生成测试数据时,我希望新行中的字段默认为lorem生成的gibberish值,lorem是一个用于java的loremipsum生成器。
在java中调用lorem工具如下所示:
String lorem = LoremIpsum.getInstance().getWords( 100 , 120 );
我尝试使用以下sql作为表定义:
String 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_ )
)
;
""";
但这意味着:
org.h2.jdbc.jdbcsqlsyntaxerrorexception:未找到公共静态java方法:“getinstance().getwords(100120)(com.thedeanda.lorem.loremipsum)”;sql语句:
为“com.thedeanda.lorem.loremipsum.getinstance().getwords(100120)”创建别名lorem[90139-200]
是否有某种方法可以 Package 对java方法的调用,将其用作SQLforH2中的函数?
2条答案
按热度按时间91zkwejq1#
我认为不能包含参数,也不能调用示例方法。您需要创建一个静态方法:
然后
bkhjykvo2#
rzwitserloot的回答是正确的。
此外,下面是一个完整的示例应用程序,演示了在该答案中看到的方法。
要运行此代码,请替换调用中的file path参数
ds.setURL
根据您的喜好命名和放置数据库文件。然后运行main
方法。