User Defined Type v objetový databázi – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

User Defined Type v objetový databázi – Java – Fórum – Programujte.comUser Defined Type v objetový databázi – Java – Fórum – Programujte.com

 

Honza
~ Anonymní uživatel
451 příspěvků
21. 11. 2012   #1
-
0
-

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;
    }
}
Nahlásit jako SPAM
IP: 147.32.93.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý