Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring启动commandlinerunner未提交事务_Java_Spring Boot_Transactions_Spring Transactions - Fatal编程技术网

Java Spring启动commandlinerunner未提交事务

Java Spring启动commandlinerunner未提交事务,java,spring-boot,transactions,spring-transactions,Java,Spring Boot,Transactions,Spring Transactions,我已经构建了一个实用程序来使用spring boot加载一些数据,该实用程序能够打开到DB的连接并提取数据,但它并没有以某种方式提交数据。下面是代码 我用以下方法运行它,但没有一种有效 java -jar target/someapp-load-dt-0.0.1-SNAPSHOT.jar mvn spring-boot:run 代码 DataProcessor.java @Transactional(propagation = Propagation.REQUIRES_NEW) @Servic

我已经构建了一个实用程序来使用spring boot加载一些数据,该实用程序能够打开到DB的连接并提取数据,但它并没有以某种方式提交数据。下面是代码

我用以下方法运行它,但没有一种有效

java -jar target/someapp-load-dt-0.0.1-SNAPSHOT.jar
mvn spring-boot:run
代码

DataProcessor.java

@Transactional(propagation = Propagation.REQUIRES_NEW)
@Service
public class DataProcessor {
    @Autowired
    private SomeDao bshServicePackDAO;

    @Transactional(readOnly = false)
    public void process() {
        bshServicePackDAO.findAll();//gets the data fine
        bshServicePackDAO.save(new SomeDto(1,2,3));
    }
}
SomeDao.java

@Repository
public interface SomeDao extends CrudRepository<SomeDto, Integer> {
}

我有@JoinTable和多对多映射,我必须更改关系的
owner
。提交开始工作。在过去,Two.java有@ManytoMany映射,所有者是两个,我必须将其更改为以下内容才能工作。现在一个。voiceFeatures。添加(两个);“承诺”很有效

Class One.java

@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "join_table", schema = "int", joinColumns = {
        @JoinColumn(name = "service_pack_id", referencedColumnName = "service_pack_id", nullable = false)
}, inverseJoinColumns = {
        @JoinColumn(name = "voice_feature_id", referencedColumnName = "voice_feature_id", nullable = false)
})
public Set<Two> voiceFeatures;
Class One.java
@ManyToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
@JoinTable(name=“join\u table”,schema=“int”,joinColumns={
@JoinColumn(name=“service\u pack\u id”,referencedColumnName=“service\u pack\u id”,nullable=false)
},反向连接列={
@JoinColumn(name=“voice\u feature\u id”,referencedColumnName=“voice\u feature\u id”,nullable=false)
})
公共设置语音特征;
在Two.java中

@ManyToMany(mappedBy = "voiceFeatures", fetch = FetchType.LAZY)
public Set<One> servicePacks;
@ManyToMany(mappedBy=“voiceFeatures”,fetch=FetchType.LAZY)
公共集服务包;

你能将
logging.level.org.springframework.orm.jpa.JpaTransactionManager=DEBUG
添加到
application.properties
并用
o.s.orm.jpa.JpaTransactionManager
相关日志更新问题吗?我想我已经解决了这个问题,我会发布一个答案,谢谢回复。你忘记发布答案了
Class One.java

@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "join_table", schema = "int", joinColumns = {
        @JoinColumn(name = "service_pack_id", referencedColumnName = "service_pack_id", nullable = false)
}, inverseJoinColumns = {
        @JoinColumn(name = "voice_feature_id", referencedColumnName = "voice_feature_id", nullable = false)
})
public Set<Two> voiceFeatures;
@ManyToMany(mappedBy = "voiceFeatures", fetch = FetchType.LAZY)
public Set<One> servicePacks;