0

I have been all day trying to solve this. I have read multiple sites and documentation, but I can go through this. I'm using Java with ObjectDB.

I have a clase named Pedido, that have a reference ManyToOne to a clase Cliente.

@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;

}

The class Persona, has nothing in special. Just a few variables. String, int, and an embedded class.

The problem is that, when I try to get a list of Client, I get an error.

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;
    }

At the end of this method, "results" is null.Even affter the query. And on em.close() I get an exception:

com.objectdb.o._PersistenceException: Failed to write the value of field field entidades.Cliente.pedidos using reflection

What's wrong with this? I suppose i'm making a bad connection on the oneToMany - manyToOne. But I can't figure it out.

How can I make a correct connection? How to retrieve the list sucefull?

1 Answers1

0

You have to change the value of the mappedBy attribute:

@OneToMany(mappedBy="cliente")

i.e. specify the field name on the owner side without the class name.

ObjectDB
  • 1,312
  • 8
  • 9