从SDN 2.3.4升级到3.0.0.RELEASE后,我有两个失败的测试:
Index name for class java.lang.String name rel: false idx: true must differ from the default name: BesoinNode
在BesoinNode
课程中,我之前使用了@Indexed(indexName = "indexOfNeeds")
但由于https://stackoverflow.com/a/22084251/1528942而删除了indexName
。现在我的索引声明很简单:
@Indexed
private String name;
失败的测试代码是:
@Test
public final void t02_TestBesoinDAORetrieve() {
// We create a new object in the datastore
Besoin need1 = needDAO.create(new BesoinNode("t02 need"));
assertEquals(new Long(1), needDAO.count());
// We retrieve the object from the datastore using its id
Besoin need1bis = needDAO.retrieveById(need1.getId());
assertEquals(need1, need1bis);
assertEquals(need1.getId(), need1bis.getId());
assertEquals(need1.getName(), need1bis.getName());
// We retrieve the object from the datastore using its name
Besoin need1ter = needDAO.retrieveByName(need1.getName());
assertEquals(need1, need1ter);
assertEquals(need1.getId(), need1ter.getId());
assertEquals(need1.getName(), need1ter.getName());
}
如果我注释掉retrieveByName
的来电,测试会成功。代码如下:
@Override
public Besoin retrieveByName(String name) {
return repository.findByPropertyValue("name", name);
}
如何重写我的retrieveByName
方法来解决错误?谢谢!
注意 :虽然这可能与问题无关,但我在API中看到IndexRepository#findByPropertyValue(String, Object)
已被弃用。只有AbstractGraphRepository#findByPropertyValue(String, Object)
不已弃用。问题是我的存储库扩展了GraphRepository
而GraphRepository
扩展了IndexRepository
,这是我无法控制的。
注2 :使用@Indexed(indexType = IndexType.SIMPLE)
使测试成功。但是这会切换旧的索引系统(而不是基于标签的新索引系统)。