Мне не хватает чего-то при добавлении нового метода, но я не знаю, что ?? Он генерируя не может найти ошибку компиляции символ в строке userDAO.countUsers:не может найти символ в базовом сервисе
@Autowired
private UserDAO userDAO;
@Async
private Future<Long> searchCount(MultiValueMap<String, String> parameters) throws DaoException {
userDAO.countUsers("bla bla");
return new AsyncResult<Long>(Long.getLong("1")); // temp code
}
Вот интерфейс сервиса:
public interface UserDAO {
long countUsers(String bloblo) throws DaoException;
А вот реализация:
@Service("userDAO")
@SuppressWarnings("unchecked")
@Transactional(readOnly = true, timeout = Constants.TRANSACTION_TIMEOUT, propagation = Propagation.SUPPORTS)
public class UserDaoImpl implements UserDAO {
@PersistenceContext
private EntityManager em;
@Override
public long countUsers(String bloblo) throws DaoException {
// Build request
final QueryCriteria qc = new QueryCriteria(bloblo);
final StringBuilder request = prepareQuery(qc);
request.replace(7, 21, "count(distinct user)");
final Query query = em.createQuery(request.toString());
// Build parameters
addParameters(query, qc);
// Execute
try {
return (Long) query.getSingleResult();
} catch (final RuntimeException e) {
LOG.error(e.getMessage(), e);
throw new DaoException(e);
}
}
Помощь действительно оценил!
Я ожидаю, что аргументы, что вы звоните 'UserDAO.countUsers' с не соответствуют заявленным типам аргументов в интерфейсе. Вам нужно пройти через каждый аргумент, в котором вы его вызываете, и убедиться, что он имеет тип, определенный в интерфейсе. – beresfordt
Я сделал это. Я даже попытался создать новый счетчик методов (длинный) с одним единственным аргументом, и у меня такая же ошибка. – benek