小编Ond*_*hal的帖子

从另一个线程调用@Transactional方法(Runnable)

有没有简单的解决方案在新线程中使用JPA将数据保存到数据库中?

我的基于Spring的Web应用程序允许用户管理计划任务.在运行时,他可以创建和启动预定义任务的新实例.我正在使用spring的TaskScheduler,一切运行良好.

但我需要将每个已触发任务的布尔结果保存到数据库中.我怎样才能做到这一点?

编辑:我必须概括我的问题:我需要从任务中调用我的@Service类的方法.因为在保存到数据库之前必须"处理"任务结果.

编辑2:我的问题代码的简化版本来到这里.从调度程序调用saveTaskResult()时,将打印出消息,但不会将任何内容保存到db中.但每当我从控制器调用saveTaskResult()时,记录都会正确保存到数据库中.

@Service
public class DemoService {

    @Autowired
    private TaskResultDao taskResultDao;

    @Autowired
    private TaskScheduler scheduler;

    public void scheduleNewTask() {
        scheduler.scheduleWithFixedDelay(new Runnable() {

            public void run() {
                // do some action here
                saveTaskResult(new TaskResult("result"));
            }

        }, 1000L);
    }

    @Transactional
    public void saveTaskResult(TaskResult result) {
        System.out.println("saving task result");
        taskResultDao.persist(result);
    }

}
Run Code Online (Sandbox Code Playgroud)

java spring runnable

16
推荐指数
3
解决办法
1万
查看次数

Kotlin JPA 实体 ID

什么是定义 JPA 实体 ID 的“kotlin 方式”?

@Entity
data class User (
        @Id @GeneratedValue
        var id: Long? = null,
        ...
)
Run Code Online (Sandbox Code Playgroud)

或者有没有更好的方法来避免可空 ID?

jpa kotlin

7
推荐指数
1
解决办法
6068
查看次数

将对象注入Spring配置

我将旧的xml/java配置转换为纯java配置.在xml中,我使用参数注入配置文件,如下所示:

<bean class="com.project.SpringRestConfiguration">
    <property name="parameters" ref="parameters" />
</bean>



@Configuration
public class SpringRestConfiguration {

    private Parameters parameters;

    public void setParameters(Parameters parameters) {
        this.parameters = parameters;
    }

    // @Bean definitions
    ...
}
Run Code Online (Sandbox Code Playgroud)

是否可以在javaconfig中注入参数?(无需使用自动装配!)

@Configuration
@Import(SpringRestConfiguration.class)
Run Code Online (Sandbox Code Playgroud)

编辑:使用@Import,我看不到有任何机会将参数注入SpringRestConfiguration

java spring spring-java-config

5
推荐指数
1
解决办法
1424
查看次数

标签 统计

java ×2

spring ×2

jpa ×1

kotlin ×1

runnable ×1

spring-java-config ×1