有 Java 编程相关的问题?

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

原因:java。lang.IllegalArgumentException:org。冬眠QueryException:无法解析属性:

在我的spring boot应用程序中,我使用了具有一对多关系的“品牌”和“家庭”实体对象

 @Entity
@Table(name = "family")
public class Family extends UserDateAudit {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;

        @NotBlank
        @Size(max = 140)
        private String name;

        @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
        @ManyToOne
        @JoinColumn(name = "brand_id")
        private Brand brand;

我需要创建一个方法'findByBrandIdIn()。所以我在我的repository类中使用了以下代码

@Query("SELECT a FROM Family a WHERE a.brand_id=:brandId")
    Page<Family> findByBrandIdIn(@Param("brandId") String brand_id, Pageable pageable);

但是,它不允许我添加brand_id,因为它不包含在“Family”实体类中

在我的“家庭”课程中,我如何使用“私人品牌”和私人长品牌标识? 或者有没有办法将品牌标识绑定到

@Query("SELECT a FROM Family a WHERE a.brand_id=:brandId")

共 (1) 个答案

  1. # 1 楼答案

    必须使用如下所示的对象引用遍历实体

    @Query("SELECT a FROM Family a WHERE a.brand.brandId=:brandId")
    

    假设您在您的品牌实体上有以下Id映射

    @Id
    @Column("brand_id")
    private long brandId;
    

    在JPA中,我们查询对象并使用实例变量(brandId)引用。不是映射的列名(品牌标识)