Когда генерируется JPA QEntity, оно генерируется с определенным словом - PullRequest
0 голосов
/ 10 июля 2019

Я не знаю, почему пронумерован только объект с именем «Член».

Другие организации этого не делают.

Прилагается источник QEntity.

так что мой вопрос

  • Почему номер организации "Member"
  • Я не хочу, чтобы это было пронумеровано. Что я должен сделать, чтобы решить эту проблему?
import static com.querydsl.core.types.PathMetadataFactory.*;

import com.querydsl.core.types.dsl.*;

import com.querydsl.core.types.PathMetadata;
import javax.annotation.Generated;
import com.querydsl.core.types.Path;


/**
 * QMember is a Querydsl query type for Member
 */
@Generated("com.querydsl.codegen.EntitySerializer")
public class QMember extends EntityPathBase<Member> {

    private static final long serialVersionUID = -1377787676L;

    public static final QMember member = new QMember("member1"); //why numbering...

    public final NumberPath<Integer> memberIdx = createNumber("memberIdx", Integer.class);

    public QMember(String variable) {
        super(Member.class, forVariable(variable));
    }

    public QMember(Path<? extends Member> path) {
        super(path.getType(), path.getMetadata());
    }

    public QMember(PathMetadata metadata) {
        super(Member.class, metadata);
    }

}

1 Ответ

0 голосов
/ 10 июля 2019

Потому что "member" является ключевым словом JPQL.

https://docs.oracle.com/html/E13946_04/ejb3_langref.html#ejb3_langref_collection_member

QueryDsl содержит их список и экранирует их, добавляя числовой суффикс:

http://www.querydsl.com/static/querydsl/4.1.4/apidocs/index.html?com/querydsl/codegen/Keywords.html

public static final Collection<String> JPA = ImmutableList.of(
        "ABS","ALL","AND","ANY","AS","ASC","AVG","BETWEEN",
        "BIT_LENGTH[51]","BOTH","BY","CASE","CHAR_LENGTH",
        "CHARACTER_LENGTH","CLASS",
        "COALESCE","CONCAT","COUNT","CURRENT_DATE","CURRENT_TIME",
        "CURRENT_TIMESTAMP",
        "DELETE","DESC","DISTINCT","ELSE","EMPTY","END","ENTRY",
        "ESCAPE","EXISTS","FALSE","FETCH",
        "FROM","GROUP","HAVING","IN","INDEX","INNER","IS","JOIN",
        "KEY","LEADING","LEFT","LENGTH","LIKE",
        "LOCATE","LOWER","MAX","MEMBER","MIN","MOD","NEW","NOT",
        "NULL","NULLIF","OBJECT","OF","OR",
        "ORDER","OUTER","POSITION","SELECT","SET","SIZE","SOME",
        "SQRT","SUBSTRING","SUM","THEN",
        "TRAILING","TRIM","TRUE","TYPE","UNKNOWN","UPDATE","UPPER",
        "VALUE","WHEN","WHERE");

Почему это проблема, учитывая, что вам никогда не нужно ссылаться на это в своем коде?

...