【发布时间】:2019-04-20 13:21:48
【问题描述】:
在我的 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()。所以我在我的存储库类中使用了以下代码。
@Query("SELECT a FROM Family a WHERE a.brand_id=:brandId")
Page<Family> findByBrandIdIn(@Param("brandId") String brand_id, Pageable pageable);
但是,它不允许我添加brand_id,因为它不包含在“家庭”实体类中。
如何在“家庭”课程中同时使用“私人品牌品牌”和私人 Long brand_id? 或者有没有办法将brand_id绑定到
@Query("SELECT a FROM Family a WHERE a.brand_id=:brandId")
【问题讨论】:
-
消息说明了一切。实体 Family 中没有名为
brand_id的属性。但是,您有一个名为brand的属性,它(可能)有一个名为id的属性。所以应该是select f from Family f where f.brand.id = :brandId。这是 JPQL 上的文档:docs.jboss.org/hibernate/orm/current/userguide/html_single/…。阅读它。
标签: java hibernate spring-mvc spring-boot jpa