将 @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