gpt4 book ai didi

java - 使用不带注解@Projection 的投影

转载 作者:行者123 更新时间:2023-11-30 10:25:38 25 4
gpt4 key购买 nike

情况

我从开发人员那里继承了一些代码,这些代码似乎使用了 spring 的未记录的功能。

具体来说,它与使用 @projection 功能有关,但实际上没有像这样注释 interface

具体例子如下:

public interface DirType extends KeyValInterface  {
@Value("#{target.id}") String getId();
@Value("#{target.code}") String getText();
}

根据官方文档,这不应该起作用,但确实如此。

public interface DirTypeRepository extends JpaRepository<ABDirType, Long> {
List<DirType> findAllSummarizedBy();
}

所以存储库的方法findAllSummarizedBy()实际上是在发送一个DirType的列表。

它使用 @Value 注释进行映射,但没有使用 @Projection 注释。

Entity 类如下:

@Data @Entity @Table(name="dir_type") @AllArgsConstructor @NoArgsConstructor
public static class ABDirType {

private @Id @GeneratedValue Long id;
private String code;
}

问题

关于这个与Projections 相关且未将界面注释为@Projection 的未记录功能,是否有人有更多信息?

这是否适用于所有版本,还是存在使用风险的隐藏 hack?

最佳答案

在 Spring Data JPA(您似乎在此处使用)中,您可以简单地使用具有适当 getter 的接口(interface)作为投影目标。

参见 the documentation关于这个(特别是“示例 62. 简单投影”)。

文档中的任何地方似乎都没有 @Projection 注释。

关于java - 使用不带注解@Projection 的投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46096273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com