Giter VIP home page Giter VIP logo

Comments (7)

armran avatar armran commented on September 25, 2024

还有,BaseQuery 里 current 和size ,如果是0 也会报错

还有
Pageable page = QueryHelper.toPage(query);
如果只传分页 current 和size ,也会报错

from boot-admin.

armran avatar armran commented on September 25, 2024

如果只传分页 没问题, 是我自己加了个 BetweenPredicateHandler 没做空数据验证 才报的错

from boot-admin.

hb0730 avatar hb0730 commented on September 25, 2024

还有,BaseQuery 里 current 和size ,如果是0 也会报错

还有 Pageable page = QueryHelper.toPage(query); 如果只传分页 current 和size ,也会报错

这个无非就是在QueryHelper.toPage(query);加之校验,current,size不允许为0

from boot-admin.

hb0730 avatar hb0730 commented on September 25, 2024

如果只传分页 没问题, 是我自己加了个 BetweenPredicateHandler 没做空数据验证 才报的错

这个其实有两个方法

 /**
     * 构造 {@code AND} 关系的 {@link Predicate} 实例的方法.
     *
     * @param criteriaBuilder {@link CriteriaBuilder} 实例
     * @param from            {@link From} 实例
     * @param fieldName       实体类的属性名
     * @param value           对应属性的值
     * @param annotation      前字段使用的注解
     * @param <Z>             范型 Z
     * @param <X>             范型 X
     * @return {@link Predicate} 实例
     */
    public <Z, X> Predicate buildPredicate(
            CriteriaBuilder criteriaBuilder, From<Z, X> from, String fieldName, @Nullable Object value,
            @Nullable Annotation annotation) {
        if (null == value) {
            return null;
        }
        return _buildPredicate(criteriaBuilder, from, fieldName, value);
    }

    /**
     * 构造 {@code AND} 关系的 {@link Predicate} 实例的方法.
     *
     * @param criteriaBuilder {@link CriteriaBuilder} 实例
     * @param from            {@link From} 实例
     * @param fieldName       属性字段名称
     * @param value           属性条件对应的值
     * @param <Z>             范型 Z
     * @param <X>             范型 X
     * @return {@link Predicate} 实例
     */
    public <Z, X> Predicate _buildPredicate(CriteriaBuilder criteriaBuilder, From<Z, X> from, String fieldName,
                                            @Nonnull Object value) {
        return null;
    }

这是因为

/**
 * 用于“等值条件”({@code field = 'xxx'})场景的注解.
 *
 * @author <a href="mailto:huangbing0730@gmail">hb0730</a>
 * @date 2024/4/27
 */
@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Equals {
    /**
     * 注解的实体字段属性名称,默认为空或空字符串时将使用属性名称.
     *
     * @return 字符串值
     */
    String value() default "";

    /**
     * 是否允许查询字段{@code  is NULL},默认为 {@code false}.
     *
     * @return 值
     */
    boolean allowNull() default false;

    /**
     * 是否使用驼峰命名,默认为 {@code true}.
     *
     * @return 值
     */
    boolean underCamel() default true;
}

中的boolean allowNull() default false; 如果为null则SQL为 value IS NULL

from boot-admin.

hb0730 avatar hb0730 commented on September 25, 2024

如果只传分页 没问题, 是我自己加了个 BetweenPredicateHandler 没做空数据验证 才报的错

还有就是如果需要做分页则使用QueryHelper.toPage(query); 如果只是查询则只需要QueryHelper.ofBean(query) ,如果结合两者才是 既要分页也要根据条件查询

from boot-admin.

armran avatar armran commented on September 25, 2024

感谢回复

  1. current,size 我重写了 set方法 并且给了个默认值。
  2. 我在 BetweenPredicateHandler 加了空验证。
  3. QueryHelper.toPage(query); 我是根据你写的模板做的。没有问题。

想请教一下,您有没有 代码生成器?
我这里表挺多,而且字段比较乱,大小写,下划线驼峰 什么格式都有。
我想快速生成Dto,entity,和query。 写这个挺费时间的。

from boot-admin.

hb0730 avatar hb0730 commented on September 25, 2024

感谢回复

  1. current,size 我重写了 set方法 并且给了个默认值。
  2. 我在 BetweenPredicateHandler 加了空验证。
  3. QueryHelper.toPage(query); 我是根据你写的模板做的。没有问题。

想请教一下,您有没有 代码生成器? 我这里表挺多,而且字段比较乱,大小写,下划线驼峰 什么格式都有。 我想快速生成Dto,entity,和query。 写这个挺费时间的。

不好意思,这个暂时没得,你可以扩展 https://github.com/baomidou/generator 变成适合自己项目的代码生成器

from boot-admin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.