2017-11-01 9 views
0

を使用してエンティティを削除できません。私はオブジェクトを削除したいだけです。ここでは私がMorphiaを使用してエンティティを削除しようとするたびに同じエラーを取得しておくmorphia(MongoDBの)


は私が書いているサービスの私のdeleteメソッドです:

public void delete(ObjectId id) { 
    BaseMaterial baseMaterial = this.findOne(id); 
    WriteResult writeResult = this.repo.delete(baseMaterial); 
} 

、ここでは(すなわちthis.findOne

public BaseMaterial findOne(ObjectId id) { 
    Query<BaseMaterial> query = repo.createQuery(BaseMaterial.class); 
    return Optional.ofNullable(query.field("id").equal(id).get()) 
      .orElseThrow(() -> new DataRetrievalFailureException(
        "Failed to fetch " + this.getClass().getName() + " with id " + id.toString())); 
} 

そして、ここで同じサービスでfindOne方法であり、私のPOJOです:

@Entity("baseMaterial") 
public class BaseMaterial { 
    @Id 
    @NotNull 
    protected ObjectId id; 
    @NotEmpty 
    private String name; 
    private String description; 

    public String get_id() { 
     return this.id.toString(); 
    } 

    @JsonIgnore 
    public ObjectId getId() { 
     return id; 
    } 

    public void setId(ObjectId id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 
} 

上記の図のfindOneの方法は期待どおりに機能するので、なぜこれが起こっているのかわかりません。

アイデア?

+0

は本当にあなたがどのバージョンを使用しているMorphiaのバグ...のように見えますか? –

答えて

1

私は@Idで注釈さフィールドが表示されない...

+0

私はtherに '@ Id'アノテーションを持っていました。私は別のクラスから継承しましたが、この質問のために、これらのフィールドをすべて単一のクラスにまとめてシンプルにしました。これはタイプミスです。私は現在も継承なしでそれをデバッグしています。 –

+0

私はまだそのフィールドで同じエラーが発生しています。私は諦めて、春のモンゴ・オブジェクト・マッパーを使用していると思います。しかしキャッチのためにありがとう –

+0

私は今飛行機に乗っていますが、あなたが好きなら後で見ることができます。 – evanchooly

関連する問題