CrudRepositoryインターフェイスにカスタムメソッドを追加することは可能ですか?Spring Hibernate - FindByObject CrudRepository
私はFoobarと呼ばれるエンティティクラスを持つ次のDAOを持っています。この質問のために、エンティティクラスは任意の数のフィールド/列を持つことができます。
package com.bar
import org.springframework.data.repository.CrudRepository;
import com.bar.Foobar
public interface FoobarCrudRepo extends CrudRepository<Foobar, Long> {
public Foobar findByObject(Foobar JObj);
}
このコードは、カスタムメソッドを削除するとうまく動作しますが、上記のように追加するとエラーが発生します。この投稿(Update or SaveorUpdate in CRUDRespository, Is there any options available)から私が理解したところでは、インターフェイスに追加のメソッドを追加するだけで済み、JPARepoは残りの部分を処理します。しかし、私は以下のエラーが発生しています。私の思考 - それはこのカスタムクラスについて多くを知らない。
は、ここに私のエラーです:
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'Foobar': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property object found for type Foobar!
は、なぜ私はあなたが尋ねるかもしれません)(findbyObjectをしたいですか?そのため、DBにオブジェクトがすでに追加されているかどうかを確認してチェックを行い、重複したデータ行をDBに挿入しないようにします。
ご意見ありがとうございます、ありがとうございます。
オブジェクト全体をキーとして使用して、オブジェクトがデータベースに存在するかどうかを確認したいのですか?なぜ一意のIDを持っていないのですか? – CraigR8806
キーとしてではなく、オブジェクトとして。私の理解では、uniqueIDはDBに挿入される前に生成されています。つまり、それを挿入する前にuniqueIDを見つける方法は? – rj2700
あなたがしたいことをするには、オブジェクトがユニークである必要があるフィールドだけを選んで、現在DB内のものと照合する必要があります。 – CraigR8806