gpt4 book ai didi

java - Play Framework 通用方法让我头疼

转载 作者:行者123 更新时间:2023-12-04 05:56:39 24 4
gpt4 key购买 nike

我在目录模型中有这个方法:

public List<Directory> subdirectories() {
return find("select d from Directory d where d.parent = ?", this.id).fetch()
}

而这个测试:
@Test
public void testSubdirectories() {
Directory d1 = Directory.find("byName", "d1").first();
Directory d2 = Directory.find("byName", "d2").first();
Directory d3 = Directory.find("byName", "d3").first();
Directory d4 = Directory.find("byName", "d4").first();

List<Directory> d1subs = d1.subdirectories();
List<Directory> d2subs = d2.subdirectories();
List<Directory> d3subs = d3.subdirectories();
List<Directory> d4subs = d4.subdirectories();

assertTrue(d1subs.contains(d2));
assertTrue(d1subs.contains(d3));
assertTrue(d2subs.isEmpty());
assertFalse(d1subs.contains(d4));
assertTrue(d3subs.contains(d4));
assertTrue(d4subs.isEmpty());
}

这种类型检查,但是当我运行测试时,我收到以下错误:
A java.lang.IllegalArgumentException has been caught, Parameter value [5] was not matching type [models.Directory]
In /test/models/DirectoryTest.java, line 37 :
List<Directory> d1subs = d1.subdirectories();

任何人都可以解释问题是什么,以及如何解决它?

最佳答案

这不应该是

return find("select d from Directory d where d.parent.id = ?", this.id).fetch();

或相同的缩短版本应该是
return find("parent.id = ?", this.id).fetch();

关于java - Play Framework 通用方法让我头疼,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com