Spring Data:当两个类之间的字段吐出时如何保存实体

时间:2017-01-30 00:44:34

标签: java hibernate spring-data

用于创建实体我使用2个类:

我所有实体的基本类(没有类级别的任何注释)

public abstract class AbstractEntity {

@Column(name ="date_of_creation",nullable = false)
private LocalDateTime dateOfCreation;

@Column(name="date_of_disable")
private LocalDateTime dateOfDisable;

@Column(name="date_of_update")
private LocalDateTime dateOfUpdate;

@Column(name="version_update")
private Integer updateVersion;

和实体

@Entity
@Table(name = "cars")
public class Car extends AbstractEntity {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

@Column(name="car_number", nullable = false, length = 10)
private String carNumber;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "brand_id", nullable = false)
private CarBrand carBrand;

我也有一个Spring Data DAO课程:

public interface CarDAO extends CrudRepository<Car, Long> {

@Override
List<Car> findAll();

List<Car> findAllByCarNumber(String carNumber);
}

问题是当我调用carDAO.save(car)时,在AbstractEntity(dateOfCreation,date_of_disable,date_of_update和version_update)中初始化的实体字段中的数据不会保存到DB中。 你能解开我做错了什么以及如何解决它?

1 个答案:

答案 0 :(得分:3)

确保使用AbstractEntity@MappedSuperclass添加注释。否则,Hibernate会将AbstractEntity中的属性视为持久性模型的一部分。