Hibernate Neo4j 以键值形式检索结果
Hibernate Neo4j retrieve result in a key-value form
我想以如下格式检索实体属性:property_name: value
。
我正在尝试通过这种方式获得结果:
public void retrievePerson(){
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistence");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
try{
String query = "MATCH (p:Person {id:3}) RETURN p.firstname, p.lastname";
List<Object[]> person = (List<Object[]>) em.createNativeQuery(query).getResultList();
em.flush();
tx.commit();
em.clear();
em.close();
emf.close();
}
catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}
}
我在某处读到查询返回的对象是托管实体。
我希望结果是这样的:{"firstname":"Jon", "lastname":"Smith"}
我找到了这个 setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE
这可能是我正在寻找的东西,但我无法让它工作。
有办法实现吗?
尝试将查询更改为:
MATCH (p:Person {id:3})
RETURN { firstname: p.firstname, lastname: p.lastname }
如果您正在寻找作为实体的返回值,这将起作用:
String query = "MATCH (p:Person {id:3}) RETURN p";
List<Person> person = (List<Person>) em.createNativeQuery(query, Person.class).getResultList();
实际上,在这种情况下,这更有意义:
Person poem = (Person) em.createNativeQuer(query, Person.class).getSingleResult();
我想以如下格式检索实体属性:property_name: value
。
我正在尝试通过这种方式获得结果:
public void retrievePerson(){
EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistence");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
try{
String query = "MATCH (p:Person {id:3}) RETURN p.firstname, p.lastname";
List<Object[]> person = (List<Object[]>) em.createNativeQuery(query).getResultList();
em.flush();
tx.commit();
em.clear();
em.close();
emf.close();
}
catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}
}
我在某处读到查询返回的对象是托管实体。
我希望结果是这样的:{"firstname":"Jon", "lastname":"Smith"}
我找到了这个 setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE
这可能是我正在寻找的东西,但我无法让它工作。
有办法实现吗?
尝试将查询更改为:
MATCH (p:Person {id:3})
RETURN { firstname: p.firstname, lastname: p.lastname }
如果您正在寻找作为实体的返回值,这将起作用:
String query = "MATCH (p:Person {id:3}) RETURN p";
List<Person> person = (List<Person>) em.createNativeQuery(query, Person.class).getResultList();
实际上,在这种情况下,这更有意义:
Person poem = (Person) em.createNativeQuer(query, Person.class).getSingleResult();