Spring Data Neo4J @Indexed (уникальный = true) не работает

Я новичок в Neo4J и у меня, наверное, простой вопрос.

Там'Для NodeEntitys в моем приложении свойство (имя) помечается @Indexed (unique = true) для достижения уникальности, как я это делаю в JPA с @Column (unique = true).

Моя проблема в том, что когда я сохраняю сущность с именем, которое уже существует в моем графе, она все равно работает нормально. Но я ожидал какого-то исключения здесь ...?! Вот' Краткий обзор основного моего кода:

@NodeEntity
public abstract class BaseEntity implements Identifiable
{
    @GraphId
    private Long entityId;
    ...
}

public class Role extends BaseEntity
{
    @Indexed(unique = true)
    private String name;
    ...
}

public interface RoleRepository extends GraphRepository
{
    Role findByName(String name);
}

@Service
public class RoleServiceImpl extends BaseEntityServiceImpl implements 
{
    private RoleRepository repository;

    @Override
    @Transactional
    public T save(final T entity) {
    return getRepository().save(entity);
    }
}

И это мой тест:

@Test
public void testNameUniqueIndex() {
    final List roles = Lists.newLinkedList(service.findAll());
    final String existingName = roles.get(0).getName();
    Role newRole = new Role.Builder(existingName).build();
    newRole = service.save(newRole);
}

Тот'Это та точка, где я ожидаю, что что-то пойдет не так! Как я могу обеспечить уникальность собственности, не проверяя ее для себя ??

П.С .: Я 'm с использованием neo4j 1.8.M07, spring-data-neo4j 2.1.0.BUILD-SNAPSHOT и Spring 3.1.2.RELEASE.

Ответы на вопрос(2)

Ваш ответ на вопрос