Как правильно сопоставить одну таблицу - одну сущность, которая разделяется на несколько классов? - PullRequest
0 голосов
/ 27 сентября 2019

Есть таблица с 30 и более полями.Я сделал несколько абстрактных классов и один класс (класс финиша)… Производим.Над абстрактными классами я помещаю аннотацию @ MappedSuperclass

Например, я использую по 5 полей для каждого класса.

@MappedSuperclass
public abstract class OneBaseAbstract {

    private Long id;

    private String name;

    public OneBaseAbstract() {
    }
/*
 getters
 setters*/

/ *
 equals and hashCode
 */

 @Override
public String toString() {
    return "OneBaseAbstract{" +
            "id=" + id +
            ", name='" + name + '\'' +
            '}';
}

}

@MappedSuperclass
public abstract class TwoBaseAbstract extends OneBaseAbstract{

    private Integer num;

    private String mark;

    public TwoBaseAbstract() {
        super();
    }

/*
 getters
 setters*/

/ *
 equals and hashCode
 */


    @Override
    public String toString() {

     String superString = super.toString();
       return superString + "TwoBaseAbstract{" +
        "num=" + num +
        ", mark='" + mark + '\'' +
        '}';

    }

}

@Entity
@Table(name = "name_table")
public class Produce extends TwoBaseAbstract {

    private String name;

    private String product;

    public Produce() {
        super();
    }

    /*
 getters
 setters*/

/ *
 equals and hashCode
 */
    @Override
    public String toString() {

        String superString = super.toString();

        return superString + "Produce{" +
                "name='" + name + '\'' +
                ", product='" + product + '\'' +
                '}';
    }
}

Класс вызывает , который создает целые сущности и заполняет поля, которые будут соответствовать таблице.Я использую MapStruct для преобразования между DTO и ENTITY .

Я также сделал Dto как структура Сущность .

Мне сказали, что это плохо.Является ли способ правильным и будет вычислять equals и hachCode для всего готового объекта, если я буду использовать этот объект в коллекциях?

...