类java.lang.String的索引名称名称rel:false idx:true必须与默认名称不同(SDN 3.0)

时间:2014-03-01 08:13:15

标签: neo4j spring-data-neo4j

从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) 已弃用。问题是我的存储库扩展了GraphRepositoryGraphRepository扩展了IndexRepository,这是我无法控制的。

注2 :使用@Indexed(indexType = IndexType.SIMPLE)使测试成功。但是这会切换旧的索引系统(而不是基于标签的新索引系统)。

0 个答案:

没有答案