In spring neo44 data, we only have repository.save(entity) , but, for example, when the UserEntity (email) property has changed, I donβt know how to update it.
I also tried using the neo4j template, but saving the object with an existing node id caused a rollback below.
org.springframework.dao.InvalidDataAccessApiUsageException: New value must be a Set, was: class java.util.ArrayList; nested exception is java.lang.IllegalArgumentException: New value must be a Set, was: class java.util.ArrayList at org.springframework.data.neo4j.support.Neo4jExceptionTranslator.translateExceptionIfPossible(Neo4jExceptionTranslator.java:43) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:58) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:163) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
How can we update node or nodeentity?
public void updateUserNode(UserEntity user) { try{ UserEntity updatedUser = this.getUserByUserId(user.getUserId());//finding node with user id/// updatedUser.setEmail(user.getEmail()); updatedUser.setImageId(user.getImageId()); updatedUser.setFirstname(user.getFirstname()); updatedUser.setLastname(user.getLastname()); //System.out.println("Deleting "); //userRepository.delete(del); System.out.println("UPDATING "); // with existing Id, you can not save it again/, or update updatedUser = userRepository.save(updatedUser); }catch(Exception e){ e.printStackTrace(); } //return }
source share