package org.tests.inherit;
import javax.persistence.CascadeType;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "rawinherit_parent")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type")
public abstract class Parent {
@Id
private Long id;
private Integer val;
private String more;
@ManyToMany(cascade = CascadeType.PERSIST)
private List<Data> data = new ArrayList<>();
protected Parent(Integer val, String more) {
this.val = val;
this.more = more;
}
public abstract String getName();
public Long getId() {
return id;
}
public Integer getVal() {
return val;
}
public List<Data> getData() {
return data;
}
public void setData(List<Data> datas) {
this.data = datas;
}
public String getMore() {
return more;
}
public void setMore(String more) {
this.more = more;
}
}