当前位置: 首页 > 知识库问答 >
问题:

Spring Hateoas链接和JPA持久性

彭仲卿
2023-03-14
@Entity
public class PolicyEvent extends ResourceSupport` 

是否有某种方法通过JPA持久化链接成员,或者我的方法本身是不正确的(Hateoas链接数据不应该持久化)。

谢谢。

共有1个答案

卫寒
2023-03-14

我建议不要混合使用JPA实体和HATEOAS公开的资源。下面是我的典型设置:

数据对象:

@Entity
public class MyEntity {
    // entity may have data that
    // I may not want to expose
}

存储库:

public interface MyEntityRepository extends CrudRepository<MyEntity, Long> {
    // with my finders...
}
public class MyResource {
    // match methods from entity 
    // you want to expose
}
@Service
public class MyServiceImpl implements MyService {
    @Autowired
    private Mapper mapper; // use it to map entities to resources
    // i.e. mapper = new org.dozer.DozerBeanMapper();
    @Autowired
    private MyEntityRepository repository;

    @Override
    public MyResource getMyResource(Long id) {
        MyEntity entity = repository.findOne(id);
        return mapper.map(entity, MyResource.class);
    }
}
@Controller
@RequestMapping("/myresource")
@ExposesResourceFor(MyResource.class)
public class MyResourceController {
    @Autowired
    private MyResourceService service;
    @Autowired
    private EntityLinks entityLinks;

    @GetMapping(value = "/{id}")
    public HttpEntity<Resource<MyResource>> getMyResource(@PathVariable("id") Long id) {
        MyResource myResource = service.getMyResource(id);
        Resource<MyResource> resource = new Resource<>(MyResource.class);
        Link link = entityLinks.linkToSingleResource(MyResource.class, profileId);
        resource.add(link);
        return new ResponseEntity<>(resource, HttpStatus.OK);
    }
}
 类似资料:
  • 我只是想学习,构建一个Spring HATEOAS应用程序。 我已将自定义查询添加到我的存储库中: 我得到了很好的JSON响应,但由于这是可分页的,我想要一个链接部分。。。使用上一个/下一个。 我该如何添加它? 主url提供了所有客户的列表,链接没有问题,我只想将这些链接添加到自定义可分页方法。 --编辑-- 啊! 使findAllFitered方法返回一个页面而不是列表。。。

  • 我正在阅读JPA 2.1规范,有这个片段: 通过调用新实体实例上的persist方法或级联persist操作,新实体实例将同时成为托管实例和持久实例。应用于实体X的持久化操作的语义如下:。。。 是否可以在不显式调用persist()方法的情况下调用persist操作,或者persist操作始终必须是通过调用persist()的触发器? 假设我有两个实体A和B,其中A与B有一个域(cascade=P

  • 这就是我的datasourcebean的样子

  • Jekyll 支持以灵活的方式管理你网站的链接,你可以通过 Configuration 或 YAML 头信息 为每篇文章设置永久链接。你可以随心所欲地选择内建链接格式,或者自定义链接格式。默认配置为 date。 永久链接的模板用以冒号为前缀的关键词标记动态内容,比如 date 代表 /:categories/:year/:month/:day/:title.html。 模板变量 变量 描述 yea

  • 问题内容: 到目前为止,我的偏好是始终使用EntityManager 来处理插入和更新。但是我还注意到,合并会在更新/插入之前执行其他选择查询,以确保数据库中不存在记录。 现在,我正在一个需要对数据库进行大量(批量)插入的项目。从性能的角度来看,在我绝对知道我一直在创建要持久化的对象的新实例的情况下,使用持久化而不是合并有意义吗? 问题答案: 它不是用一个好主意时,就足够了- 做了很多更多的工作。

  • 主要内容:JPA级联持久化示例,输出结果级联持久化用于指定如果实体持久化,则其所有关联的子实体也将被持久化。 以下语法用于执行级联持久性操作 - JPA级联持久化示例 在这个例子中,我们将创建两个相互关联的实体类,但要建立它们之间的依赖关系,我们将执行级联操作。 这个例子包含以下步骤 - 第1步: 在包下创建一个名为的实体类,其中包含属性:,,以及标记为级联规范的类型的对象。 文件: StudentEntity.java - 第2步: