小编JuH*_*m89的帖子

Angular 2 iframe与父通信

在我目前的项目中,我有多个Angular 2应用程序,应该由门户应用程序(也是Angular 2)提供服务.因此,门户网站应用程序的标题区域包含指向所有底层应用程序的链 当用户点击一个应用程序链接时,相应的角度2应用程序将加载到门户主体的iframe中.

在此输入图像描述

现在我开发了一个中央授权服务.在门户网站中,我有一个服务,它拥有当前登录用户的权限.我的问题是:是否可以在单个应用程序(iframe)中访问父(门户)的角度2服务/组件?它似乎可能在角度1 范围内

javascript iframe angular

20
推荐指数
2
解决办法
1万
查看次数

Spring Data JPA - 并发批量插入/更新

目前我开发了一个Spring Boot应用程序,它主要从消息队列(~5并发消费者)中提取产品评论数据并将它们存储到MySQL DB中.每个评论可以通过其reviewIdentifier(字符串)唯一标识,该标识符是主键并且可以属于一个或多个产品(例如,具有不同颜色的产品).以下是数据模型的摘录:

public class ProductPlacement implements Serializable{

   private static final long serialVersionUID = 1L;

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   @Column(name = "product_placement_id")
   private long id;

   @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="productPlacements")
   private Set<CustomerReview> customerReviews;
}

public class CustomerReview implements Serializable{

   private static final long serialVersionUID = 1L;

   @Id
   @Column(name = "customer_review_id")
   private String reviewIdentifier;

   @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
   @JoinTable(
        name = "tb_miner_review_to_product",
           joinColumns = @JoinColumn(name = "customer_review_id"),
           inverseJoinColumns = @JoinColumn(name = "product_placement_id")
        )
   private Set<ProductPlacement> productPlacements;
} …
Run Code Online (Sandbox Code Playgroud)

java hibernate spring-data spring-data-jpa

5
推荐指数
1
解决办法
8800
查看次数

@Transactional 中的 Spring Data JpaRepository saveAndFlush 不起作用

目前我面临着 Spring-Data/Hibernate 的一个问题,我将简要介绍一下。

我正在研究一些简单的报告功能,它从单个表中获取实体作为流。这工作正常,但必须在更长时间运行的事务中发生,因为与数据库的连接需要保持打开状态。在这个事务中,我想不断更新一个 ReportEntity,它跟踪进程的状态和进度。代码看起来基本上是这样的:

    @Async
    @Transactional(isolation = Isolation.READ_UNCOMMITTED)
    public void process(Long reportId, SearchCriteria searchCriteriaTo) {

        ReportEntity report = reportRepository.findById(reportId).get();
        report.setStatus(ReportGenerationStatus.START);
        reportRepository.saveAndFlush(report);

        Stream<RawDataEntity> rawDataEntityStream = this.rawDataRepository
            .findAllFiltered(...);

        report.setStatus(ReportGenerationStatus.GENERATING_REPORT);
        report.setProgress(50);
        reportRepository.saveAndFlush(report);

        ...

        rawDataEntityStream.forEach(() -> DoSomething())

        ...

        report.setStatus(ReportGenerationStatus.FINISHED);
        report.setProgress(100);
    }

Run Code Online (Sandbox Code Playgroud)

我的问题是,根据我的理解, saveAndFlush 应该将 The ReportEntity 的中间步骤写入数据库,但事实并非如此。我正在使用 Posgres DB 并使用 PGAdmin 验证了这一点,并且我还编写了一个不断获取 ReportEntity 的轮询客户端。

    @Transactional(readOnly = true)
    public ReportEto getReportByKey(UUID key) {
        // entityManager.clear();
        ReportEntity reportEntity = this.reportRepository.findByKey(key);
        return getBeanMapper().map(reportEntity, ReportEto.class);
    }
Run Code Online (Sandbox Code Playgroud)

但是状态“GENERATING_REPORT”不会写入数据库。只有在最终提交后,状态才会更新为 FINSIH。我试图将隔离级别设置为“READ_UNCOMMITTED”,但这也没有效果。然而,休眠调试日志建议触发更新:

o.h.e.i.DefaultMergeEventListener        : EntityCopyObserver strategy: disallow
o.h.e.i.AbstractFlushingEventListener    : Processing flush-time …
Run Code Online (Sandbox Code Playgroud)

hibernate spring-transactions spring-data-jpa

5
推荐指数
0
解决办法
5852
查看次数