在我的项目中,我使用了用于ORM的Speedment。当然,我希望我的代码得到适当的测试。因此,我决定创建一个与我想要用于单元测试的默认数据库模式完全相同的副本。在本例中,原始模式的名称是“项目”,副本的名称是"test_project“。
我的问题是我不知道如何正确地处理另一个数据库模式。
我知道,在建立连接时,我可以使用withSchema("test_project")方法告诉speedment使用哪个模式。只要我的查询中没有任何列标识符,这就可以很好地工作。
所以这是可行的:
List <User> users = userManager.stream().collect(Collectors.toList());
然而,这不是:
List <User> users = userManager.stream().filter(User.UID.equal(id)).collect(Collectors.toList()); 它告诉我:Unknown column 'project.User.uid' in 'where clause
我真的不明白那里发生了什么。(注:我对Speedment很陌生)。
我的问题是:我如何访问我的另一个模式,并且它的所有行都被正确地寻址到它?
发布于 2018-03-04 03:12:18
这是a bug in Speedment。更改模式withSchema("test_project")是正确的方法。这将在Speedment版本3.0.23中修复。
https://stackoverflow.com/questions/43959360
复制相似问题