1

Entity オブジェクトで次のメッセージを受け取りましたか?

基本属性タイプは IDao であってはなりません

このように使用されている場所:

@Entity
@Table
public final class MyEnity {

    @Resource(name = "Dao")
    private IDao dao;

名前が悪いことはわかっていますが、休止状態のエンティティとして注釈が付けられた Domain オブジェクトに Dao (リポジトリで注釈が付けられた) を挿入する際の問題は何ですか? そしてIDaoはDaoクラスで実装されるインターフェースで……

4

1 に答える 1

8

IDaoエンティティに挿入される処理要素のようであり、それを永続化するつもりはありません。transientその場合は、ORM がエンティティの CRUD 操作中に無視するようにマークする必要があります。

@Resource(name = "Dao")
private transient IDao dao;

ところで、私はあなたのエンティティが@Configurable. どうやってdao注射するつもりなの?ORM は、デフォルトのコンストラクターを使用してタイプの新しいオブジェクトを作成しMyEntity、セッターを呼び出してデータベースから値を設定します。IDao daoそのようなインスタンスはスプリング管理の Bean ではないため、注入されません。オペレーターを使用して作成されたインスタンスにリソースが注入されるように、Spring Managed にするようMyEntityにマークする必要があります。@Configurablenew

于 2012-10-21T13:58:28.833 に答える