Nella mia attuale implementazione ho classi entità separate per ogni tabella db. Sto usando JPA insieme a eclipselink-2.5.2. Funziona bene per me ma a un certo punto quando i dati sono enormi, è in ritardo. Ecco perché ho deciso di iniziare a utilizzare @ Embedded, @ Embeddable e @ Embedded ID. Mentre sto facendo questo, sto ricevendo un errore che è molto strano per me. Ecco lo stacktrace completo pubblicato: https://gist.githubusercontent.com/tjDudhatra/b955812e0d1a71cf97f1/raw/11ea458869e24baae744530417ac99bc877ed514/gistfile1.txtStrano problema durante la configurazione dei tipi di ID per la classe incorporabile in EclipseLink-2.5.2
Essendo specifico, consentitemi di fornirvi lo scenario esatto, nel qual caso ricevo l'eccezione. Considera questo blocco di codice che ha tre classi. Uno è annotato come @Entity e altri due sono annotati come @Embeddable. So che in una classe non possiamo definire @Id e EmbeddedId e non ho fatto così, quindi anche durante la distribuzione del server, io sono sempre l'eccezione che dice solo:
[classe org.apache . {} SomeClass] ha sia un @EmbdeddedId (su attributo [id]) e un @Id (su attributo []. entrambi i tipi di identificazione non è possibile specificare sulla stessa entità.
@Entity
@Table(name="user")
public class User {
@ID
public Long id;
@Column(name="userCode")
public String userCode;
@ElementCollection
@CollectionTable(name = "address", joinColumns = @JoinColumn(name = "user_id"))
public List<Address> addressList;
....
}
@Embeddable
public class Address {
@EmbeddedId
@Column(name = "id")
public Long id;
@Column(name="userId")
public Long userId;
@Column(name="address-line-1")
public String addressLine1;
@Column(name="address-line-2")
public String addressLine2;
@ElementCollection
@CollectionTable(name = "phone", joinColumns = @JoinColumn(name = "user_id"))
protected List<Phone> phoneList;
....
}
@Embeddable
public class Phone {
@EmbeddedId
@Column(name = "id")
public Long id;
@Column(name="contact_no")
public String contactNo;
@Column(name="country_code")
public int countryCode;
@Column(name="address_id")
public int addressId;
....
}
prega fammi sapere se sono necessari più dettagli e qualsiasi tipo di aiuto sarà molto apprezzato.
Grazie,
Ohh mi scuso, è EclipseLink-2.5.2 –