有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

基于元模型Java的标准api继承

在我的应用程序中,我有一些从用户类扩展而来的实体。用户有firstName和lastName字段。对从用户扩展的每个实体进行搜索。为了实现搜索,我使用了CriteriaAPI。当我们讨论相同的参数时,对它们的查询看起来非常相似。所以我决定创建泛型类,将所有内容集中在一个地方

public abstract class NameSpecificationManager<Entity, SearchDto extends BasicSearchDto, MetaModel extends User_>
    extends SpecificationManager<Entity, SearchDto> {

    protected final SpecificationBuilder<Entity> entityByFirstName = (final String firstName) ->
        (root, query, cb) -> cb.like(root.get(MetaModel.firstName), getParameterPattern(firstName));

    protected final SpecificationBuilder<Entity> entityByLastName = (final String lastName) ->
        (root, query, cb) -> cb.like(root.get(MetaModel.lastName), getParameterPattern(lastName));

}

以下是SpecificationBuilder:

 public interface SpecificationBuilder<Entity> {
     Specification<Entity> getSpecOfSearchParam(String searchParam);
 }

问题在于元模型。lastName和元模型。firstName用Intellij加下划线(它表示“无法用…User.firstName解析方法”)。可能是因为不清楚我们期望的用户类的确切扩展是什么。也许有办法避免这种情况。提前谢谢


共 (0) 个答案