Mam dwie klasy. Jednym z nich jest klasa encji, a druga służy jako złożona klasa kluczy.Brak domyślnego konstruktora dla obiektu dla klasy wewnętrznej w Hibernate
Kod jest następujący.
@Entity
public class Supply {
@Embeddable
class Id implements Serializable {
@Column(name = "supplier_id")
private long supplierId;
@Column(name = "merchandise_id")
private long merchandiseId;
public Id() {
}
public Id(long sId, long mId) {
this.supplierId = sId;
this.merchandiseId = mId;
}
}
@EmbeddedId
private Id id = new Id();
}
Jeśli używam spróbować znaleźć
from Supply where merchandise_id=%d and supplier_id=%d
Hibernate rzuci wyjątek, a mianowicie:
No default constructor for entity: com.entity.Supply$Id; nested exception is org.hibernate.InstantiationException: No default constructor for entity: com.entity.Supply$Id
Uważam jednak, że jeśli zmienię klasyId do static. Wszystko będzie dobrze.
Jestem ciekawy, jak te wszystkie rzeczy mogą się wydarzyć.
Bardzo by to pomogło, gdybyś w tym poście umieścił identyfikator ostrzeżenia o hibernacji "HHH000182". Statyczna rzecz naprawiła dla mnie, ale znalezienie tej odpowiedzi było trudne! – Amalgovinus