Если ваша общая цель состоит в том, чтобы гарантировать, что транзакционный откат изменений, сделанных с помощью обоих вызовов dao, при возникновении непроверенного исключения, вы сможете удалить @Transactional из самих методов dao и сохранить его на уровне службы , Транзакционные в Spring могут быть уровня класса или метода, поэтому в этом случае вы можете использовать его только для метода *, который вызывает оба метода dao (хотя, как вы указали, вы, похоже, хотите сохранить эти аннотации в слое dao?) .
Одним из основных моментов транзакций является работа с несколькими изменениями базы данных (множественные вызовы дао), поэтому не очень полезно иметь транзакционную аннотацию для отдельных методов дао (или для слой дао в целом).
Если вы два даоса имеете дело с двумя разными источниками данных (не уверен, вы не упомянули), то, если у вас есть / можно получить данные пружины в качестве зависимости, вы можете использовать ChainedTransactionManager (https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/transaction/ChainedTransactionManager.html)