【发布时间】:2011-04-08 12:18:18
【问题描述】:
您能否建议我,我怎样才能很好地为 Hibernate 实体启用 Spring 自动装配?
假设我有一个实体并希望在那里有邮件发件人:
@Entity
public class EmailActivity extends Activity {
@Autowired @Transient
private JavaMailSender javaMailSender;
...
}
有没有比做更好的方法
AutowireCapableBeanFactory.autowireBean(
getCurrentSession().get(Activity.class, id)
);
在我的 DAO 中?
谢谢!
【问题讨论】:
-
将邮件发件人放入实体似乎是一个奇怪的选择。你能多描述一下你为什么想要这种方法吗?显然不要持久化实例,因为它被标记为瞬态,也不是因为您使用的是非贫血模式,例如活动记录(因为您提到了 DAO)。为什么不使用公开的方法将邮件发件人注入管理器/服务层以传递适当的活动数据以通过电子邮件发送?
-
我认为邮件发件人是一种基础设施。领域模型不应依赖于基础设施代码
-
哦,伙计们,这只是一个例子。实际上我的 EmailActivity 不是真正的实体,它只是 Activity 的包装器(@Discriminator),并且确保邮件发件人没有存储在 Db 中
标签: java hibernate spring autowired