Hibernate/JPA中@Where使用时注意

在使用Hibernate或者JPA时,我们经常会使用@Where注解实现查询过滤,在实体类上、实体属性上、查询语句上都有应用。

例如:

@Where(clause = "status != -1")
List<SalarySheetEntity> findAllByCreatedByOrderByIdDesc(String login);
@Where(clause = "status != -1")
public class SmsAccountEntity extends AbstractAuditingEntity {}

注意:应用在查询时需要注意,不可以应用在count上,注解源码可知:

/**
 * Where clause to add to the element Entity or target entity of a collection.  The clause is written in SQL.
 * A common use case here is for soft-deletes.
 *
 * @author Emmanuel Bernard
 */
@Target({TYPE, METHOD, FIELD})
@Retention(RUNTIME)
public @interface Where {
    /**
     * The where-clause predicate.
     */
    String clause();
}

猜你喜欢

转载自www.cnblogs.com/watson-ljf/p/10283823.html
今日推荐