Spring boot 未找到SpringBoot JPA的任何属性

Spring boot 未找到SpringBoot JPA的任何属性,spring-boot,spring-data-jpa,entity,Spring Boot,Spring Data Jpa,Entity,我在运行应用程序时遇到这个错误,我不明白为什么。。我在网上找到了信息,但不知道怎么了。谢谢你的帮助 2)关于这方面的另一个问题,我是否应该提出: List<HistoriqueDeploiement> findByIdNamespaceAndIdService(Namespace id_namespace, Service id_service); Or List<HistoriqueDeploiement> findByIdNamespaceAndIdService(I

我在运行应用程序时遇到这个错误,我不明白为什么。。我在网上找到了信息,但不知道怎么了。谢谢你的帮助

2)关于这方面的另一个问题,我是否应该提出:

List<HistoriqueDeploiement> findByIdNamespaceAndIdService(Namespace id_namespace, Service id_service);
Or
List<HistoriqueDeploiement> findByIdNamespaceAndIdService(Integer id_namespace, Integer id_service);
实体:

@Entity
@Table(name = "historiquedeploiement")
@Data
@EqualsAndHashCode(callSuper=false)
@NoArgsConstructor
@AllArgsConstructor
public class HistoriqueDeploiement extends AuditModel {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id", nullable=false, unique=true)
    private Integer id;    

    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "id_namespace", nullable = false)    
    @JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
    @JsonIdentityReference(alwaysAsId=true)
    @JsonProperty("id_namespace")
    private Namespace namespace;

    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "id_service", nullable = false)    
    @JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
    @JsonIdentityReference(alwaysAsId=true)
    @JsonProperty("id_service")
    private Service service;

    @NotEmpty(message = "Le GitCommit ne peut être vide")
    @Size(max = 255)
    private String gitCommit;   
    
    @NotEmpty(message = "Le TagVersion ne peut être vide")
    @Size(max = 100)
    private String tagVersion;  
    
    @NotEmpty(message = "Le Actionby ne peut être vide")
    @Size(max = 255)
    private String actionBy;    
    
}
名称空间实体(与服务相同)

@实体
@表(name=“名称空间”)
@资料
@EqualsAndHashCode(callSuper=false)
@诺尔格构装师
@AllArgsConstructor
公共类命名空间扩展了AuditModel{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
@列(name=“id”,nullable=false,unique=true)
私有整数id;
@空空如也
@尺寸(最大值=100)
@列(唯一=真)
私有字符串名称空间;
@OneToMany(mappedBy=“namespace”,cascade=CascadeType.ALL,orphan=true)
private List historyDeployments=new ArrayList();
公共无效添加历史开发(历史开发历史开发){
添加(历史开发);
setNamespace(this);
}
公共无效删除历史开发(历史开发历史开发){
历史开发。移除(历史开发);
setNamespace(null);
}
}
回购协议,我不明白我做错了什么:

...
@Repository
public interface HistoriqueDeploiementRepository extends JpaRepository<HistoriqueDeploiement, Integer> {        
    List<HistoriqueDeploiement> findAll();
    
    List<HistoriqueDeploiement> findByIdNamespace(Integer id);
    
    List<HistoriqueDeploiement> findByIdNamespaceAndIdService(Namespace id_namespace, Service id_service);
    
    List<HistoriqueDeploiement> findByIdNamespaceAndLogCreatedAtBetween(Namespace id_namespace, Date datedebut, Date datefin);

    List<HistoriqueDeploiement> findByIdNamespaceAndLogCreatedAt(Namespace id_namespace, Date date);

}
。。。
@存储库
公共接口HistoryQueeDevelopmentRepository扩展了JpaRepository{
列出findAll();
列出findByIdNamespace(整数id);
列出FindByidNamespaceandDService(名称空间id\u名称空间,服务id\u服务);
列出findByIdNamespaceAndLogCreatedAtBetween(名称空间id_名称空间,Date DateFirst,Date datefin);
列出findbyidnamespace和logcreatedat(名称空间id\u名称空间,日期);
}

好的,我查看了您的问题,以下是我的发现。分配给存储库接口方法参数的类型错误

您希望获得名称空间和服务实体具有特定ID的HistoryQueeDevelopment实体的列表。请注意,命名空间和服务实体的ID是整数类型。因此,为了解决这个问题,您可以简单地重写您的方法,如下所示:

@Repository
public interface HistoriqueDeploiementRepository extends 
JpaRepository<HistoriqueDeploiement, Integer> {        
    List<HistoriqueDeploiement> findAll();

    List<HistoriqueDeploiement> findByNamespaceId(Integer id);

    List<HistoriqueDeploiement> findByNamespaceIdAndServiceId(Integer id_namespace, Integer id_service);

    List<HistoriqueDeploiement> findByNamespaceIdAndLogCreatedAtBetween(Integer id_namespace, Date datedebut, Date datefin);

    List<HistoriqueDeploiement> findByNamespaceIdAndLogCreatedAt(Integer id_namespace, Date date);
}
@存储库
公共接口历史开发存储扩展
JpaRepository{
列出findAll();
列出FindBynameSpace id(整数id);
列出findByNamespaceIdAndServiceId(整数id\u名称空间,整数id\u服务);
列出findByNamespaceIdAndLogCreatedAtBetween(整数id_名称空间,Date DateFirst,Date datefin);
列出findByNamespaceIdAndLogCreatedAt(整数id\u名称空间,日期);
}

注意,这里的主要变化是我们将名称空间和服务类型替换为Integer类型,Integer类型是它们ID的实际类型

您是否介意编写一个希望repository方法执行的SQL查询?也就是说,在我看来,您需要一个HistoryQueeDevelopment实体的列表,这样相关的名称空间和服务就有了一些属性。如果确实是这样,那么您需要一些连接,而且您不太可能通过Spring数据实现这一点DSLI使用映射和DTO来获得我需要的值(我理解您的说法)。但实际上问题在于我的回购协议:(这是我的第一次测试,但我有:
没有找到Integer类型的属性名称空间
我很快忘记了对方法名称进行更改,但只更改了参数。我已经编辑了我的答案,现在应该是workApp正在运行,但我不明白为什么
名称空间ID
而不是IdNamespace??谢谢!如果你您将名称空间的实例命名为Namespace如何访问其id属性?您将使用Namespace.getId(),但由于方法名称不能包含点和大括号,因此约定将其作为NamespaceId写入
...
@Repository
public interface HistoriqueDeploiementRepository extends JpaRepository<HistoriqueDeploiement, Integer> {        
    List<HistoriqueDeploiement> findAll();
    
    List<HistoriqueDeploiement> findByIdNamespace(Integer id);
    
    List<HistoriqueDeploiement> findByIdNamespaceAndIdService(Namespace id_namespace, Service id_service);
    
    List<HistoriqueDeploiement> findByIdNamespaceAndLogCreatedAtBetween(Namespace id_namespace, Date datedebut, Date datefin);

    List<HistoriqueDeploiement> findByIdNamespaceAndLogCreatedAt(Namespace id_namespace, Date date);

}
@Repository
public interface HistoriqueDeploiementRepository extends 
JpaRepository<HistoriqueDeploiement, Integer> {        
    List<HistoriqueDeploiement> findAll();

    List<HistoriqueDeploiement> findByNamespaceId(Integer id);

    List<HistoriqueDeploiement> findByNamespaceIdAndServiceId(Integer id_namespace, Integer id_service);

    List<HistoriqueDeploiement> findByNamespaceIdAndLogCreatedAtBetween(Integer id_namespace, Date datedebut, Date datefin);

    List<HistoriqueDeploiement> findByNamespaceIdAndLogCreatedAt(Integer id_namespace, Date date);
}