我整天都在试图解决这个问题。我已经阅读了多个站点和文档,但我可以通过这个。我将 Java 与 ObjectDB 一起使用。
我有一个名为 Pedido 的类,它有一个对类 Cliente 的引用 ManyToOne。
@Entity
public class Pedido {
@Id @GeneratedValue
private long id;
@Embedded private Direccion origen;
@ManyToOne(optional=true)
private Cliente cliente; //Opcional
@Basic(optional=false) private Date fechaYhora; //Fecha en que se debe enviar el coche
}
@Entity
public class Cliente extends Persona{
@OneToMany(mappedBy="Pedido.cliente")
public List<Pedido> pedidos;
}
Persona 类没有什么特别之处。只是几个变数。String、int 和嵌入式类。
问题是,当我尝试获取客户端列表时,出现错误。
static public List<Cliente> getClientes() throws Exception{
em = EMF.createEntityManager();
List<Cliente> results = null;
try{
TypedQuery<Cliente> query = em.createQuery("SELECT c FROM Cliente c", Cliente.class);
results = query.getResultList();
}finally{
em.close();
}
return results;
}
在此方法结束时,“结果”为空。即使在查询之后。在 em.close() 我得到一个例外:
com.objectdb.o._PersistenceException:无法使用反射写入字段字段 entidades.Cliente.pedidos 的值
这有什么问题?我想我在 oneToMany - manyToOne 上的连接不好。但我无法弄清楚。
如何进行正确的连接?如何成功检索列表?