Не заполняются поля таблицы

270
06 июля 2017, 01:02

Есть класс Product:

@Entity
@Table(name = "Products")
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @ManyToOne(targetEntity = Type.class)
    @JoinColumn(name = "type")
    private Set<Type> type = new HashSet<Type>();
    @ManyToOne(targetEntity = Brand.class)
    @JoinColumn(name = "brand")
    private Set<Brand> brand = new HashSet<Brand>();
    private String title;
    private long count;
    private long price;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "product_id")
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public Set<Type> getType() {
        return type;
    }
    public void setType(Set<Type> type) {
        this.type = type;
    }
    public Set<Brand> getBrand() {
        return brand;
    }
    public void setBrand(Set<Brand> brand) {
        this.brand = brand;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public long getCount() {
        return count;
    }
    public void setCount(long count) {
        this.count = count;
    }
    public long getPrice() {
        return price;
    }
    public void setPrice(long price) {
        this.price = price;
    }
}

Класс Brand:

@Entity
@Table(name = "Brands")
public class Brand {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String brand;
    @OneToMany(mappedBy = "brand", fetch = FetchType.LAZY)
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getTitle() {
        return brand;
    }
    public void setTitle(String brand) {
        this.brand = brand;
    }
    @Override
    public String toString() {
        return "Brand {" + "id=" + id + ", brand=" + brand + '}';
    }
}

И класс Type:

@Entity
@Table(name = "Types")
public class Type {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    private String type;
    @OneToMany(mappedBy = "type", fetch = FetchType.LAZY)
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Override
    public String toString() {
        return "Type {" + "id=" + id + ", type=" + type + '}';
    }
}

Схема БД:

CREATE TABLE Brands
(ID BIGINT PRIMARY KEY AUTO_INCREMENT,
BRAND VARCHAR(100));
CREATE TABLE Types
(ID BIGINT PRIMARY KEY AUTO_INCREMENT,
TYPE VARCHAR(100));
CREATE TABLE Products
(ID BIGINT PRIMARY KEY AUTO_INCREMENT,
TYPE_ID BIGINT REFERENCES Types(ID),
BRAND_ID BIGINT REFERENCES Brands(ID),
TITLE VARCHAR(100),
COUNT BIGINT,
PRICE BIGINT);

Все запускается и работает, но в браузере при выводе данных из таблицы Products именно поля brand и type почему-то null. Второй день маюсь, не могу понять, в чем проблема.

Answer 1

Сделай дебаг и посмотри значения этих полей в самом java коде. Если они null то скорее всего проблема в БД. Если все ОК, то что-то не правильно на стороне клиента. Как вариант у тебя может быть Lazy initialization. Тогда данные с таблиц Brand i Type будут подтягиваться только после product.getBrends(), product.getType() Но скорее всего, если бы это было то у тебя был бы exception.

READ ALSO
Push уведомления

Push уведомления

В фоновом режиме приложение отправляет запросы на сервер, в циклеПо задумке если ответ сервера содержит 1, надо отправить пуш уведомление

191
Java, асинхронная отправка множества get-запросов

Java, асинхронная отправка множества get-запросов

Здравствуйте! Возник такой вопросКак правильно отправлять N (N > 100) get-запроcов в секунду на указанный url?

226
Глобальная обработка Нажатий мыши Java

Глобальная обработка Нажатий мыши Java

Хотелось бы обработать нажатие мыши не только в своем приложении, но и глобальноЕсть такой код :

179
Добавление поиска SearchView в Activity не содержащую ListView

Добавление поиска SearchView в Activity не содержащую ListView

Вопрос заключается в следующем: я реализовал SearchView в ToolBar, при этом в активности нет элемента ListViewНа ней расположены 10 кнопок с картинками

187