Ahoj mám takovej problém....mám velice jednoduchou databázi a v ní UDT Adresa. Při vygenerování ORM to NetBeans nevzali a vytvořili to jako typ Object. Zkusil jsem vytvořit tohle to ale nejsi si zcela jistej jestli je to správně a pak při spuštění mi to vyhazuje nějakou vyjímku na prvním řádku při vytváření EntityManagera kde vůbec nevim co to znamená a jestli je to chyba databáze a někde mám něco špatně a nebo mám někde něco špatně nastaveného. Knihovnu JDBC jsem si přidal . Dělám s tím poprvé a jsem rád za každou rozumnou radu.Díky
Main metoda
EntityManager em = Persistence.createEntityManagerFactory("dbPU").createEntityManager();
Query q = em.createNamedQuery("Osoba.findAll");
List<db.Osoba> ret = q.getResultList();
System.out.println("");
Třída(Entita) Osoba kde používám atribut Adresa
@Entity
@Table(name = "OSOBA")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Osoba.findAll", query = "SELECT o FROM Osoba o"),
@NamedQuery(name = "Osoba.findByRodC", query = "SELECT o FROM Osoba o WHERE o.rodC = :rodC"),
@NamedQuery(name = "Osoba.findByJmeno", query = "SELECT o FROM Osoba o WHERE o.jmeno = :jmeno"),
@NamedQuery(name = "Osoba.findByPrijmeni", query = "SELECT o FROM Osoba o WHERE o.prijmeni = :prijmeni")})
public class Osoba implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@Column(name = "ROD_C")
private String rodC;
@Basic(optional = false)
@Column(name = "JMENO")
private String jmeno;
@Basic(optional = false)
@Column(name = "PRIJMENI")
private String prijmeni;
@Lob
@Column(name = "ADRESA")
private Adresa adresa;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "osoba")
private Pacient pacient;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "osoba")
private Lekar lekar;
public Osoba() {
}
public Osoba(String rodC) {
this.rodC = rodC;
}
public Osoba(String rodC, String jmeno, String prijmeni) {
this.rodC = rodC;
this.jmeno = jmeno;
this.prijmeni = prijmeni;
}
public String getRodC() {
return rodC;
}
public void setRodC(String rodC) {
this.rodC = rodC;
}
public String getJmeno() {
return jmeno;
}
public void setJmeno(String jmeno) {
this.jmeno = jmeno;
}
public String getPrijmeni() {
return prijmeni;
}
public void setPrijmeni(String prijmeni) {
this.prijmeni = prijmeni;
}
public Object getAdresa() {
return adresa;
}
public void setAdresa(Adresa adresa) {
this.adresa = adresa;
}
public Pacient getPacient() {
return pacient;
}
public void setPacient(Pacient pacient) {
this.pacient = pacient;
}
public Lekar getLekar() {
return lekar;
}
public void setLekar(Lekar lekar) {
this.lekar = lekar;
}
@Override
public int hashCode() {
int hash = 0;
hash += (rodC != null ? rodC.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Osoba)) {
return false;
}
Osoba other = (Osoba) object;
if ((this.rodC == null && other.rodC != null) || (this.rodC != null && !this.rodC.equals(other.rodC))) {
return false;
}
return true;
}
@Override
public String toString() {
return "db.Osoba[ rodC=" + rodC + " ]";
}
}
Třída(Atribut) Adresa, která reprezentuje UDT
@Embeddable
public class Adresa implements Serializable{
String ulice;
int CP;
int PSC;
String mesto;
public Adresa(String ulice, int CP, int PSC, String mesto) {
this.ulice = ulice;
this.CP = CP;
this.PSC = PSC;
this.mesto = mesto;
}
public Adresa() {
}
public String getUlice() {
return ulice;
}
public int getCP() {
return CP;
}
public int getPSC() {
return PSC;
}
public String getMesto() {
return mesto;
}
public void setUlice(String ulice) {
this.ulice = ulice;
}
public void setCP(int CP) {
this.CP = CP;
}
public void setPSC(int PSC) {
this.PSC = PSC;
}
public void setMesto(String mesto) {
this.mesto = mesto;
}
}