自动连接的域/实体类保留旧值

时间:2017-02-03 12:38:47

标签: spring java-8

我有一个传入事件消息的mapper类。

一旦事件消息到达应用程序,mapper类就会设置实体对象中的值并将其保存在数据库中。 我已经在我的mapper类中自动化了实体对象。

每当有新事件进入时,自动装配的实体对象仍然具有旧/以前的值。

在这种情况下,域/实体对象的自动装配是否可行,或者我应该使用' New'关键字而不是自动装配为Spring bean。

我看到一些关于使用@Configurable的帖子。我不确定在这种情况下哪种编码方法最好?

@Service
public class LegacyEventMapper {

        @Autowired
        private LegacyEvent legacyEvent;

        @Autowired
        private LegacyEntity legacyEntity;

        public void mapLegacyNotificationDetails(LegacyScheduleEvent body) throws Exception {
       //Setting the values into the Entity object

由于

2 个答案:

答案 0 :(得分:1)

我不知道为什么你真的想要@Autowire@Entity并让它清楚地意识到。这是错的。你可以做到这一点,但这绝对没有意义。

您真正想要做的是创建一个新的LegacyEntity(通过new LegacyEntity)并将该实例保存到DB。

您通过@Configurable阅读的内容是另一种方式 - 您将一个spring bean / service注入实体。

答案 1 :(得分:0)

我认为我们可以@Autowire@Entity类。但是然后我们需要在实体类中提到它属于请求范围

@Entity
@Scope(scopeName=WebApplicationContext.SCOPE_REQUEST, proxyMode=ScopedProxyMode.TARGET_CLASS)
public class LegacyEntity {

我不确定使用new关键字而不是自动装配Entity类是更好的方法吗?