java - springboot+jpa 无法save父类中的属性
本文介绍了java - springboot+jpa 无法save父类中的属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
1、父类
@Embeddable
@Inheritance(strategy = JOINED)
public abstract class BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Column
@Temporal(TemporalType.TIMESTAMP)
private Date createDate;
@Column
@Temporal(TemporalType.TIMESTAMP)
private Date updateDate;
...
//省去get\set
}
2、子类
@Entity
@Table(name = "user")
public class UserEntity extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String user;
private String password;
private String role;
private String tel;
private String mail;
...
}
3、Repository接口
@Repository
public interface UserRepository extends CrudRepository<UserEntity , Long> {
public UserEntity save(UserEntity user);
}
``
4、controller中调用save方法的时候,
user.setCreateDate(new Date());
这个方法最终并没有被save进去,不知打为何
下面是springboot打印的日子
Hibernate: insert into user (mail, password, role, tel, user) values (?, ?, ?, ?, ?)
com.example.demo.entity.UserEntity@78730d83
可以看到里面并没有createDate
解决方案
基类BaseEntity
加上@MappedSuperclass
注解,包javax.persistence.MappedSuperclass
可以参考 JPA @MappedSuperclass 注解说明
这篇关于java - springboot+jpa 无法save父类中的属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文