Querydsl: membuat proyeksi QBean dengan nama Path yang identik

Dibuat pada 19 Feb 2015  ·  6Komentar  ·  Sumber: querydsl/querydsl

Saya memiliki dua Jalur dengan nama properti yang identik (nama tim dan nama pemimpin tim)

Projections.bean(QTeam.team, team.name, team.leader.name);

gagal dengan

java.lang.IllegalArgumentException: Multiple entries with same key: name=team.leader.name and name=team.name
    at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:150)
    at com.google.common.collect.RegularImmutableMap.checkNoConflictInBucket(RegularImmutableMap.java:104)
    at com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:70)
    at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:254)
    at com.mysema.query.types.QBean.createBindings(QBean.java:72)
    at com.mysema.query.types.QBean.<init>(QBean.java:161)
    at com.mysema.query.types.QBean.<init>(QBean.java:95)
    at com.mysema.query.types.Projections.bean(Projections.java:63)

Komentar yang paling membantu

Anda dapat mengisi kacang bersarang, tetapi Anda harus melakukannya secara eksplisit.

misalnya

Projections.bean(Team.class, team.name, 
  Projections.bean(Leader.class, team.leader.name).as("leader"))

Dengan asumsi bahwa Leader adalah jenis objek perantara.

Semua 6 komentar

Bagaimana Anda ingin ini diterapkan pada kacang?

Saya hanya ingin nama tim dan nama pemimpin tim, semua properti lainnya harus nol. Bukankah itu alami?

QBean memerlukan kunci properti unik dan tidak mendukung pembuatan properti perantara implisit.

Apakah itu berarti dengan desain saya tidak dapat menggunakan misalnya proyeksi MongoDB untuk properti bersarang dan memproyeksikan dokumen MongoDB ke Java bean?

Anda dapat mengisi kacang bersarang, tetapi Anda harus melakukannya secara eksplisit.

misalnya

Projections.bean(Team.class, team.name, 
  Projections.bean(Leader.class, team.leader.name).as("leader"))

Dengan asumsi bahwa Leader adalah jenis objek perantara.

OK mengerti. Terima kasih. Akan lebih baik untuk mendukung sintaks yang lebih ringkas.
Harap pertimbangkan untuk memindahkan ini ke peningkatan atau penutupan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat