0
Springデータの使用MongoDB。そして、私は私のMongoRepositoryにこのクエリを定義している:配列をMongoRepository @Queryに渡すにはどうすればよいですか?
@Query("{'type':?0, 'tags.type':?1, 'tags.softSkill.name': {$all: ?2}}")
List<Foo> findByTypeAndTags_TypeAndTags_SoftSkills(
FooType type, TagType tagType, String[] softSkills);
私はので、私は@Query
アノテーションを使用する方法の命名方法によって、クエリを構築することはできません$all
演算子を使用したいと。
引数に渡そうとしているString[]
が問題であるという問題があります。私はリストを試しましたが、エラーは残ります。モンゴシェルで
value expected to be of type java.util.List but is class java.lang.String toString:fooStr
のようになります:$all: ['foo1','foo2']
フー抽象エンティティはようである:
@Data
@Document(collection="foes")
public abstract class Foo {
/*...*/
protected List<Tag> tags = new ArrayList<>();
}
タグ asbtract POJO:
@Data
public abstract class Tag {
protected final TagType type;
protected TagLevel level;
}
TagSoftSkill POJO:
@Data
@EqualsAndHashCode(callSuper=true)
public class TagSoftSkill extends Tag{
private SoftSkill softSkill; //another pojo that has a "name" field
public TagSoftSkill() {
super(TagType.SOFT_SKILL);
}
}
私はすでにデバッグとsoftSkills
プリント[foo]
。 ['foo']
のように値を変更しましたが、変更はありません。
入力arg 'softSkills'で呼び出しメソッドのサンプルを見せてもらえませんか?また、' Foo' beanを投稿に追加してください。 – Veeram
@Veeram ok、done – anat0lius
エラーを再現できません。両方のリストと配列は私のために1.10.4 spring mongo releaseであなたの設定で動作します。例外のスタックトレースを追加できますか? – Veeram