@FilterDef(name = CommonConstants.PRODUCT_FILTER, parameters = {@ParamDef(name="products", type = "long")})
@Filter(name = CommonConstants.PRODUCT_FILTER, condition = "alert.product in (:products)")
@NoArgsConstructor
@SuperBuilder
public class AlertNotificationUserJpaEntity extends AbstractJpaEntity {
@Column(name = "USER_ID")
private Long user;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "ALERT_ID")
private AlertJpaEntity alert;
}
@FilterDef(name = CommonConstants.PRODUCT_FILTER, parameters = {@ParamDef(name="products", type = "long")})
@Filter(name = CommonConstants.PRODUCT_FILTER, condition = "PRODUCT_ID in (:products)")
@Table(name = "alert")
@NoArgsConstructor
@SuperBuilder
public class AlertJpaEntity extends AbstractJpaEntity {
private static final long serialVersionUID = 1L;
@Column(name = "PARENT")
private Long parent;
@Column(name = "PRODUCT_ID")
private Long product;
@Column(name = "SUBPRODUCT_ID")
private Long subProduct;
}
When I run a declarative method findByUser(Long userId) it throws error saying alert.product does not exists
is there any way to fetch
something like
select alertNotif from AlertNotificationUserJpaEntity alertNotif inner join AlertJpaEntity alert on alertNotif.alert.id = alert.id where alert.product in (:product)