无法探索由嵌入式 neo4j 创建的数据库
Can not explore database created by an embedded neo4j
我遇到一个奇怪的问题。
我使用嵌入式 neo4j 创建了一个数据库,其路径为“/Users/bondwong/Documents/workspace/pamela/target/data/pamela.db”。
这里是 Spring 配置:
<bean id="graphDbBuilder" factory-bean="graphDbFactory"
factory-method="newEmbeddedDatabaseBuilder">
<constructor-arg value="target/data/pamela.db" />
</bean>
然后我把neo4j的这一行改成了-server.properties:
org.neo4j.server.database.location=/Users/bondwong/Documents/workspace/pamela/target/data/pamela.db
之后,我用curl测试了我的系统,显示一切正常。这是获取 id 为 9 的节点的结果:
但是,当我启动服务器并使用浏览器查看数据时,没有显示任何内容:
这里是位置,和Spring XML配置文件中的一样:
这是 :sysinfo 结果:
这是 jUnit 测试及其结果,表明它实际插入了数据:
package repositoryTest;
import static org.junit.Assert.*;
import java.util.HashMap;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import com.bond.pamela.domain.Diary;
import com.bond.pamela.domain.factory.DiaryFactory;
import com.bond.pamela.persistence.DirayRepository;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/applicationContext.xml" })
public class DiaryRepositoryTest {
@Autowired
DirayRepository repository;
@Test
@Transactional
public void testSaveDiary() {
Diary diary = (Diary) DiaryFactory.getInstance().create(
new HashMap<String, Object>());
repository.save(diary);
Diary retrivedDiary = repository.findOne(diary.getGraphId());
assertEquals(diary, retrivedDiary);
}
}
我认为它应该可以工作,有人知道哪里出了问题吗?以及如何修复它。谢谢!
您可以将 java 代码写成 server extension
或暂时使用WrappingBootstrapper。
或者更确切地说,使用 ServerControls from Neo4j-Harness 进行测试
创建数据时,您确定您正确提交了事务吗?
Transaction tx = db.beginTx();
// create data
tx.success();
tx.close();
或更好
try (Transaction tx = db.beginTx()) {
// create data
tx.success();
}
我遇到一个奇怪的问题。
我使用嵌入式 neo4j 创建了一个数据库,其路径为“/Users/bondwong/Documents/workspace/pamela/target/data/pamela.db”。
这里是 Spring 配置:
<bean id="graphDbBuilder" factory-bean="graphDbFactory"
factory-method="newEmbeddedDatabaseBuilder">
<constructor-arg value="target/data/pamela.db" />
</bean>
然后我把neo4j的这一行改成了-server.properties:
org.neo4j.server.database.location=/Users/bondwong/Documents/workspace/pamela/target/data/pamela.db
之后,我用curl测试了我的系统,显示一切正常。这是获取 id 为 9 的节点的结果:
但是,当我启动服务器并使用浏览器查看数据时,没有显示任何内容:
这里是位置,和Spring XML配置文件中的一样:
这是 :sysinfo 结果:
这是 jUnit 测试及其结果,表明它实际插入了数据:
package repositoryTest;
import static org.junit.Assert.*;
import java.util.HashMap;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import com.bond.pamela.domain.Diary;
import com.bond.pamela.domain.factory.DiaryFactory;
import com.bond.pamela.persistence.DirayRepository;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/applicationContext.xml" })
public class DiaryRepositoryTest {
@Autowired
DirayRepository repository;
@Test
@Transactional
public void testSaveDiary() {
Diary diary = (Diary) DiaryFactory.getInstance().create(
new HashMap<String, Object>());
repository.save(diary);
Diary retrivedDiary = repository.findOne(diary.getGraphId());
assertEquals(diary, retrivedDiary);
}
}
我认为它应该可以工作,有人知道哪里出了问题吗?以及如何修复它。谢谢!
您可以将 java 代码写成 server extension
或暂时使用WrappingBootstrapper。 或者更确切地说,使用 ServerControls from Neo4j-Harness 进行测试
创建数据时,您确定您正确提交了事务吗?
Transaction tx = db.beginTx();
// create data
tx.success();
tx.close();
或更好
try (Transaction tx = db.beginTx()) {
// create data
tx.success();
}