【Java日报】2019-08-23 - Jakarta EE 8 - 过去、现在和未来

Jakarta EE 8 - 过去、现在和未来

这篇文章是Arjan Tijms在Eclipse官方上面发表的文章,在文章中解释了Jakarta EE 8是做什么的,回顾了J2EE的历史以及演进到Jakarta的现在和展望的未来(我尽可能的将这篇文章翻译给大家)

原文链接:https://www.eclipse.org/community/eclipse_newsletter/2019/august/jakartaee8.php

FluentJPA - 为JPA提供类型安全流畅API的面向对象SQL查询

JPA是一种很棒的技术,它将数据库关系模型映射到Java面向对象上。它可以很容易地检索数据并持久化。但它缺乏执行高级查询的能力,大部分时候所有高级SQL功能都用难以维护的SQL硬编码来进行工作。

FluentJPA用了三种方式来解决这种问题,以下是部分示例代码

@Repository
public interface PersonRepository extends CrudRepository<Person, Long>, EntityManagerSupplier {

    default List<Person> getAllByName(String name) {
        FluentQuery query = FluentJPA.SQL((Person p) -> {
            SELECT(p);
            FROM(p);
            WHERE(p.getName() == name);
        });

        return query.createQuery(getEntityManager(), Person.class).getResultList();
    }
}

生成的SQL

SELECT t0.*
FROM PERSON_TABLE t0
WHERE (t0.name = ?)

FluentJPA.SQL((Part allParts) -> {

    Part included_parts = subQuery((Part it,
                                    Part parts,
                                    Part subParts) -> {
        // initial
        SELECT(parts.getSubPart(), parts.getName());
        FROM(parts);
        WHERE(parts.getName() == "our_product");

        UNION_ALL();

        // recursive
        SELECT(subParts.getSubPart(), subParts.getName());

        // recurse
        FROM(recurseOn(it), subParts);
        WHERE(it.getSubPart() == subParts.getName());
    });

    WITH(RECURSIVE(included_parts));

    DELETE().FROM(allParts);
    WHERE(collect(included_parts, included_parts.getName()).contains(allParts.getName()));

});

GitHub:https://github.com/streamx-co/FluentJPA

GraalVM 19.2 - 新的工具

这是19.1之后的主要版本,带来了改进的配置文件引导优化,包含LLVM工具链,支持Java Flight Recorder的增强型VisualVM,新的Visual Studio Code插件预览,更好的原生图像峰值性能等等。 有关值得注意的更改的更完整列表,请查看发行说明。

文章地址:https://medium.com/graalvm/graalvm-19-2-new-tools-b78a70f54b06

Spring Cloud Gateway 请求头

这篇文章记录了作者如何在Spring Cloud Gateway设置请求头时,发生的怪异问题,并最终解决的历程。

文章地址:https://qua.name/antolius/spring-cloud-gateway-connection-header

Java编程方法论-Spring WebFlux 源码解读-Spring WebFlux中DispatcherHandler的设计思路解读

知秋大佬的《Java编程方法论-Spring WebFlux 源码解读》更新了

视频地址:https://www.bilibili.com/video/av64777900/?redirectFrom=h5

日报订阅地址:

  • 微信公众号:月泉子
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值