我尝试在我的Spring项目中使用Spring Hateoas 1.0的新版本,在该项目中,所有实体类都继承自Abstract类,但是在Hateoas文档中,我的实体必须扩展RepresentationModelModel类https://docs.spring.io/spring-hateoas/docs/1.0.1.RELEASE/reference/html/#fundamentals.representation-models我在扩展Entity父类上的RepresentationModel时遇到问题,有人可以帮助我。
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import org.springframework.hateoas.RepresentationModel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@MappedSuperclass
@Getter @Setter @NoArgsConstructor
public abstract class Entity<T> extends RepresentationModel<T> implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private T id;
@Column
private Date createAt;
@Column
private Date updateAt;
}
我没有使用泛型类,而是将整个对象投射回控制器中的concrete
类。
这是我的超级班
public class AbstractEntity extends RepresentationModel<AbstractEntity> implements Serializable {
}
现在我的课扩展了AbstractEntity
:
public class User extends AbstractEntity {}
并且在控制器中,我们可以有一种添加selfRef
的方法:
private User addSelfLink(User user) {
return (User) user.add(linkTo(methodOn(UserController.class).getById(user.getId())).withSelfRel());
}
我们要做的就是将对象晒成我们正在使用的最终对象