基本属性类型不应该是IDao - intellij消息

Nim*_*sky 1 java spring hibernate intellij-idea

我在我的Entity对象中收到以下消息?

基本属性类型不应该是IDao

在哪里使用这样:

@Entity
@Table
public final class MyEnity {

    @Resource(name = "Dao")
    private IDao dao;
Run Code Online (Sandbox Code Playgroud)

我知道这个名字很糟糕,但是将我的Dao(带有存储库注释)注入我的注释为hibernate实体的Domain对象有什么问题?IDao是由Dao类实现的接口......

Vik*_*dor 6

IDao似乎是一个处理元素注入实体,你不打算坚持它.如果是这样,您应该将其标记为transient以便ORM在实体的CRUD操作期间忽略它.

@Resource(name = "Dao")
private transient IDao dao;
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我看不到你的实体@Configurable.你打算如何dao注入它?ORM将MyEntity使用默认的constrcutor 创建一个新的类型对象,并调用setter来设置数据库中的值.你IDao dao不会被注入,因为这样的实例不是一个弹簧管理的bean.您必须标记MyEntity@Configurable使其受弹簧管理,以便使用new运算符创建的实例将获取注入的资源.