Passar id por autocomplete

Boa noite amigos.

Estou usando o controler abaixo para buscar dados:

@Get("/fruta/busca.json")
    public void buscaJson(String nome) {
        result.use(json()).withoutRoot().from(daoFactory.getFrutaDao().busca(nome))
                .exclude("peso")
      .serialize();
    }

Quando digito a url:

fruta/busca.json?nome=a

Aparece os dados que quero. Acontece que eu desejo que quando for digitado algo no input abaixo:

<div class="form-group col-md-8">
            <label for="nome_fruta">Nome Fruta</label>
            <input type="text" class="form-control" id="nome_fruta" name="quitanda.futa.nomeFruta" value="${quitanda.futa.nomeFruta}" required autofocus />
        </div>

Fosse preenchido o ID da fruta no input abaixo:

<input type="text" name="quitanda.futa.cod" id="quitandaFrutaCod" value="${quitanda.fruta.cod}">

Poderiam me ajudar nessa situação?

post a function de oncomplete que esta usando.

Você vai ter que fazer um AJAX na medida que o usuário for digitando algo no input, obter o resultado e, quando a lista retornada tiver apenas 1 item, pegar o tal código e setar no campo.

Qual sua dúvida realmente? Fazer o ajax? Obter o retorno?

@Lucas_Camara seria isso mesmo que você postou. Estou bem enrolado no javascript.
Quando digito a url:

http://localhost:8084/fruteira/quitanda/busca.json?q=man

Recebo isso que é oque quero:

[{"cod": 3,"nomeFruta": "Manga"}]

Estou usando a função abaixo, e pelo que entendi, quando o usuário começa a digitar no input com id: #nome_fruta, no segundo caractere deveria aparecer uma lista com os nomes de frutas encontrados e ao ser selecionado um, o ID dessa fruta tem que preencher o value do input de nome:#quitandaFrutaCod
Abaixo, deixo a função JS, o controller e o DAO pra verem se está correto e como posso resolver essa questão.

$('#nome_fruta').autocomplete({  
	source: function(request, response){  
		$.ajax({
			url: '<c:url value="/fruta/busca.json"/>', // URL 
			type: 'get',
			data: {
				q: $.trim(request.term) //
			},
			success: function(data) {
				response($.map(fruta, function(item) {
					return {
						label: item.nome,
						value: item.nomeFruta,
						fruta: item
					};
				}));
			}
		});
	},
	select: function(event, ui) {
		$("#quitandaFrutaCod").val(ui.item.fruta.cod);
	},
	minLength: 2,
	open: function() {
		var data = $(this).data('autocomplete');
		data.menu.element.find('a').each(function () {
			var self = $(this);
			var keywords = $.trim(data.term).replace(/^(\*)/g, '').replace(/\s/g, '\\ ');
			
			if (keywords.length > 0)
				self.html(self.text().replace(new RegExp('(' + keywords + ')(.*)', 'gi'), '<b>$1</b>$2'));
		});
	}  
);

Alterei um pouco o controller:

@Get("/fruta/busca.json")
public void buscaJson(String q) {
	result.use(json()).withoutRoot().from(daoFactory.getFrutaDao().busca(q))
			.exclude("peso")
			.serialize();
}

E meu DAO:

public List<Fruta> busca(String q) {
	return session.createCriteria(Fruta.class)
			.add(Restrictions.ilike("nomeFruta", q, MatchMode.ANYWHERE))
			.list();
}
@Html.LabelFor(model => model.Id_Paciente, htmlAttributes: new { @class = "control-label" })