我在我的实体对象中收到以下消息?
基本属性类型不应该是 IDao
像这样使用它的地方:
@Entity
@Table
public final class MyEnity {
@Resource(name = "Dao")
private IDao dao;
我知道这个名字不好,但是将我的 Dao(用存储库注释)注入到我的被注释为休眠实体的 Domain 对象有什么问题?而IDao是Dao类实现的接口...
我在我的实体对象中收到以下消息?
基本属性类型不应该是 IDao
像这样使用它的地方:
@Entity
@Table
public final class MyEnity {
@Resource(name = "Dao")
private IDao dao;
我知道这个名字不好,但是将我的 Dao(用存储库注释)注入到我的被注释为休眠实体的 Domain 对象有什么问题?而IDao是Dao类实现的接口...
IDao
似乎是一个被注入实体的处理元素,您不打算保留它。如果是这样,您应该将其标记为transient
以便 ORM 在实体上的 CRUD 操作期间将忽略它。
@Resource(name = "Dao")
private transient IDao dao;
顺便说一句,我不认为您的实体是@Configurable
. 你打算如何dao
注入它?ORM 将使用默认构造函数创建一个新的类型对象,MyEntity
并调用 setter 来设置数据库中的值。您IDao dao
不会被注入,因为这样的实例不是弹簧管理的 bean。您必须标记MyEntity
为@Configurable
使其受弹簧管理,以便使用new
运算符创建的实例将获得资源注入。