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

时间:2012-10-21 13:55:45

标签: java spring hibernate intellij-idea

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

  

基本属性类型不应该是IDao

这样使用的地方:

@Entity
@Table
public final class MyEnity {

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

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

1 个答案:

答案 0 :(得分:6)

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

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

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