在父抽象类中使用HATEOAS RepresentationModel

问题描述 投票:1回答:1

我尝试在我的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;

} 
spring-boot abstract-class hateoas
1个回答
0
投票

我没有使用泛型类,而是将整个对象投射回控制器中的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());
    }

我们要做的就是将对象晒成我们正在使用的最终对象

© www.soinside.com 2019 - 2024. All rights reserved.