2015-05-06 2 views
1

Я использую это и получаю сообщение об ошибке, как:getHibernateTemplate() возвращают строку

Несовместимые типы: Требуемые: String Найдено: Список

У меня есть таблица с несколькими столбцами, и я хочу, чтобы возвращать когда имя и адрес совпадают.

@Override 
public String getphone(long name,String address){ 
    String phone= getHibernateTemplate().find("from Table where name=" + name+"AND address='" + address+"'"); 
     return phone; 
    } 
+0

Метод 'find()' возвращает 'List'. Что ты пытаешься сделать? –

+0

Я хочу вернуть строку. Каков правильный синтаксис? – PSDebugger

+0

В качестве комментария я думаю, что вы должны использовать параметризованные строки, а не конкретизировать его внутри запроса. – nachokk

ответ

1

find метод HibernateTemplate, вернуть List<?>

public List<?> find(final String queryString, final Object... values) throws DataAccessException { 

} 

Вам нужно получить доступ к элементам списка или сказать, 1-й элемент и возврат это.

@Override 
public String getphone(long name,String address){ 
    List<EntityABC> entityList = getHibernateTemplate().find("from Table where name=" + name+"AND address='" + address+"'"); 

if(null!=entityList && entityList.size() >0){ 
    return phoneNumberList.get(0).getPhone(); 
} 

return null; 
} 
-1
@Override 
public String getphone(long name,String address){ 
    String phone= getHibernateTemplate().find("from Table where name=" + name+"AND address='" + address+"'").get(0).getPhone(); 
    return phone; 
} 

Я думаю, что это может решить вашу проблему

Смежные вопросы