将 @Transactionnal 从存储库移动到服务后获取 ORA-00900(无效 SQL 语句)

Posted

技术标签:

【中文标题】将 @Transactionnal 从存储库移动到服务后获取 ORA-00900(无效 SQL 语句)【英文标题】:Getting an ORA-00900 (Invalid SQL Statement) after moving @Transactionnal from Repository to service 【发布时间】:2022-01-08 18:48:10 【问题描述】:

在将 @Transactional@Modifying 注释从我的存储库方法移动到服务方法后,我得到了一个 java.sql.SQLSyntaxErrorException: ORA-00900: Invalid SQL Statement

@Repository("someRepository")
public interface SomeRepository extends CrudRepository<SomeEntity, String>
  //My code works if the next two line are uncommented !!
  //@Transactional
  //@Modifying
  @Query(nativeQuery = true, value = "delete from some_table where col = :param")
  int repoDelete(@Param("param") String param);


@Service(value = "someService")
  public class SomeServiceImpl implements SomeService 

  @Autowired SomeRepository repo;

  @Override
  @Transactional
  @Modifying
  public void serviceDelete(String id) throws UdhException 
    repo.repoDelete(id);
  

【问题讨论】:

【参考方案1】:

我已经阅读了一些其他问题并找到了解决方案:@Transactional 注释应用于在 bean 内部调用的方法时不考虑在内。

有关更多详细信息,请阅读接受的回复here(堆栈问题)

【讨论】:

以上是关于将 @Transactionnal 从存储库移动到服务后获取 ORA-00900(无效 SQL 语句)的主要内容,如果未能解决你的问题,请参考以下文章

将文件从一个存储库移动到另一个存储库并并行更改

sh 将子目录从一个git存储库移动到另一个git存储库的子目录,而不会丢失提交历史记录。

VisualSVN 将存储库从 server1 移动到 server2

如何将文件从一个文件夹移动到同一git存储库中的另一个文件夹保留历史记录[重复]

将提交从一个分支移动到另一个分支

如何将分支内容移动到另一个存储库保留历史记录并避免复制原始存储库的完整历史记录?