Cześć, stworzyłem aplikacje przy użyciu Mavena i łączę się z bazą danych MySQL. Wszystko, wydaje się, że działa poprawnie, tylko przy wyszukiwaniu danych z bazy i ich wyświetlaniu w konsoli jest problem z kluczami obcymi - mianowicie nie wyświetla się zawartość danej komórki tylko nazwa pakietu i jakiś zlepek znaków.
Pytanie brzmi jak zrobić żeby w tym miejscu wyświetlało rzeczywistą zawartość komórki.
KOD:
Uzytkownik.java
package pakiet.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Uzytkownik {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String User;
private String Password;
@OneToOne
private Adres adres;
@OneToOne(mappedBy = "uzytkownik")
private Wypozyczone_ksiazki wypozyczone_ksiazki;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUser() {
return User;
}
public void setUser(String user) {
User = user;
}
public String getPassword() {
return Password;
}
public Wypozyczone_ksiazki getWypozyczone_ksiazki() {
return wypozyczone_ksiazki;
}
public void setWypozyczone_ksiazki(Wypozyczone_ksiazki wypozyczone_ksiazki) {
this.wypozyczone_ksiazki = wypozyczone_ksiazki;
}
public void setPassword(String password) {
Password = password;
}
public Adres getAdres() {
return adres;
}
public void setAdres(Adres adres) {
this.adres = adres;
}
}
Wypozyczone_ksiazki.java
package pakiet.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class Wypozyczone_ksiazki {
@Id
@GeneratedValue
private long id;
private String Data_od;
private String Data_do;
@OneToOne
private Uzytkownik uzytkownik;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getData_od() {
return Data_od;
}
public void setData_od(String data_od) {
Data_od = data_od;
}
public String getData_do() {
return Data_do;
}
public void setData_do(String data_do) {
Data_do = data_do;
}
public Uzytkownik getUzytkownik() {
return uzytkownik;
}
public void setUzytkownik(Uzytkownik uzytkownik) {
this.uzytkownik = uzytkownik;
}
}
Adres.java
package pakiet.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.GenerationType;
@Entity
public class Adres {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String Ulica;
private String Numerdomu;
private String Miasto;
private String KodPocztowy;
@OneToOne(mappedBy = "adres")
private Uzytkownik uzytkownik;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUlica() {
return Ulica;
}
public void setULica(String ulica) {
Ulica = ulica;
}
public String getNumerdomu() {
return Numerdomu;
}
public void setNumerdomu(String numerdomu) {
Numerdomu = numerdomu;
}
public String getMiasto() {
return Miasto;
}
public void setMiasto(String miasto) {
Miasto = miasto;
}
public String getKodPocztowy() {
return KodPocztowy;
}
public void setKodPocztowy(String kodPocztowy) {
KodPocztowy = kodPocztowy;
}
}
Klasa do wyszukiwania:
package pakiet;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import pakiet.domain.Uzytkownik;
public class FindAndModify {
public static void main(String[] args) {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("myDatabase");
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
Uzytkownik uzytkownik = entityManager.find(Uzytkownik.class, 1L);
System.out.println(""+uzytkownik.getUser());
System.out.println(""+uzytkownik.getAdres());
System.out.println(""+uzytkownik.getWypozyczone_ksiazki());
entityManager.getTransaction().commit() ;
entityManager.close();
entityManagerFactory.close();
}
}
Po uruchomieniu klasy FindAndModify konsola wyświetla dane:
Jan
pakiet.domain.Adres@5cf87cfd
pakiet.domain.Wypozyczone_ksiazki@76075d65
a moja baza zawiera takie dane:
Uzytkownik:
# id, Password, User, adres_id
'1', 'afshhs', 'Jan', '1'
Adres:
# id, KodPocztowy, Miasto, Numerdomu, Ulica
'1', '57-100', 'Wroclaw', '10', 'Warszawska'
Wypozyczone_ksiazki:
# id, Data_do, Data_od, uzytkownik_id
'1', '15 maja', '15 czerwca', '1'
Chodzi o to, żeby po wpisaniu komendy z pliku FindAndModify
Uzytkownik uzytkownik = entityManager.find(Uzytkownik.class, 1L);
System.out.println(""+uzytkownik.getUser());
System.out.println(""+uzytkownik.getAdres());
System.out.println(""+uzytkownik.getWypozyczone_ksiazki());
Konsola wyświetliła:
Jan
(konkretny adres, id adresu lub np. nazwę miasta - jak to ustawić?)
(jw. konkretną informację z tabeli wypozyczone_ksiazki lub calą informację z tej kolumny)
Dziękuję z góry za wszelką pomoc