извлечение всех строк из таблицы (PostgreSQL) с использованием поврежденного вывода Hibernate - PullRequest
0 голосов
/ 02 декабря 2018

Итак, я новичок в спящем режиме и хочу создать метод, который будет извлекать все из таблицы "серверы".Есть три столбца: serverId, server_name и server_Ip.Я могу успешно добавлять и удалять строки из моей таблицы с помощью спящего режима, но когда я пытаюсь получить все из них, вывод выглядит так, как будто Список не приведен в мой сопоставленный класс (ServerEntity).Я действительно застрял в этой, вероятно, тривиальной проблеме.

Это метод для извлечения строк из серверов таблиц

 public static  List<ServersEntity[]>  readDB() {
     final Session session = getSession();
     session.getSessionFactory().openSession();
     session.beginTransaction();

     String hql = "FROM ServersEntity";
     Query query = session.createQuery(hql);
     List results = query.list();
     session.getTransaction().commit();

     System.out.println(results);
     session.close();
     return results;
}

это вывод этого метода через System.out.print (список)

[org.openjfx.ServersEntity@e9113e0a, org.openjfx.ServersEntity@ae36623e, org.openjfx.ServersEntity@ae36661f, org.openjfx.ServersEntity@ae8cd466]

ServersEntity.class

package org.openjfx;

import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.util.Objects;

@Entity
@Table(name = "servers", schema = "public", catalog = "SERVERS")
public class ServersEntity {
    private int serverId;
    private String serverName;
    private String serverIp;

    @Id
    @GenericGenerator(name = "idgen", strategy = "increment")
    @GeneratedValue(generator = "idgen")
    @Column(name = "server_ID", nullable = false)
    public int getServerId() {
        return serverId;
    }

    public void setServerId(int serverId) {
        this.serverId = serverId;
    }

    @Basic
    @Column(name = "server_name", nullable = true, length = -1)
    public String getServerName() {
        return serverName;
    }

    public void setServerName(String serverName) {
        this.serverName = serverName;
    }

    @Basic
    @Column(name = "server_IP", nullable = true, length = -1)
    public String getServerIp() {
        return serverIp;
    }

    public void setServerIp(String serverIp) {
        this.serverIp = serverIp;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ServersEntity that = (ServersEntity) o;
        return serverId == that.serverId &&
                Objects.equals(serverName, that.serverName) &&
                Objects.equals(serverIp, that.serverIp);
    }

    @Override
    public int hashCode() {
        return Objects.hash(serverId, serverName, serverIp);
    }
}

1 Ответ

0 голосов
/ 03 декабря 2018

Я думаю, что ваш код в порядке.Вы получаете список ServersEntitySystem.out.println распечатайте этот список.Проблема в том, что System.out.println не «знает», как напечатать ваш ServersEntity, а также вывести имя класса и идентификатор объекта.Попробуйте добавить toString метод в ваш класс ServersEntity:

  @Override
  public String toString() {
    return serverName + ": " + serverIp;
  }

и запустите ваш код.

Когда вы попытаетесь SELECT server_name FROM ServerEntity получить свой список строк.И System.out.println «знает», как его напечатать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...