Вот мой запрос на выбор в BrandMapper.xml.
<select id="getBrand" parameterType="String" resultMap="brandResult">
SELECT
B.bid as bid,
B.bname as bname,
B.avg_price as avg_price,
B.total_number as total_number,
P.pid as pid,
P.pname as pname,
P.bid as pbid,
P.bname as pbname,
P.specs as pspecs,
P.price as price
from Brands B left outer join Products P on P.bid = B.bid
where B.bname = #{bname, jdbcType=VARCHAR}
</select>
Это интерфейс
public interface BrandMapper {
BrandDAO getBrand(String bname);
}
Это класс обслуживания
@Service
public class BrandService {
@Autowired
private BrandMapper brandMapper;
public BrandDAO getBrand(String bname) {
System.out.println("Inside DBService getBrand");
return brandMapper.getBrand(bname);
}
}
Моя проблема в том, что функция getBrand
в BrandService
возвращает значение null
.Если я заменим параметр #{bname}
внутри BrandMapper.xml
жестко закодированной строкой, он сработает и вернет правильный класс.Что я здесь не так делаю?Есть ли какие-либо журналы или что-нибудь доступное, где я могу видеть фактический запрос, который создается?Любая помощь приветствуется.
Мне удалось включить loggin, используя log4j, и этот запрос выполняется
SELECT B.bid as bid, B.bname as bname, B.avg_price as avg_price, B.total_number as total_number, P.pid as pid, P.pname as pname, P.bid as pbid, P.bname as pbname, P.specs as pspecs, P.price as price from Brands B left outer join Products P on P.bid = B.bid where B.bname = ?
Параметр не заменяется.Я не могу понять, что я делаю здесь неправильно.