Ordem Exibição Table Fora de Sequência - RESOLVIDO

Bom dia!!!

Fiz uma tela de cadastro e listo ela em uma table e está etilizado com bootstrap.Mais a ordem que apresenta ela, quando clico no botão editar e gravo, ela fica fora de ordem, já tentei order by, já fiz uma função mais não aparece na ordem. O correto seria

1
2
3

9
10
11

E está apresentando assim
1
10
11
2
3

4
5

Qual o tipo de dado dessa coluna? Se está ordenando 11 antes de 2 (por exemplo), é porque está sendo feita uma ordenação por texto, não como número. Você precisa converter a coluna para número, ou usar uma função de conversão no seu order by.

Abraço.

Boa tarde!!! Obrigado pela atenção!!!

o tipo de dado é integer primary key, estou usando postgres como banco de dados, o engraçado é que quando faço um select * from usuario, ele traz igual a tabela, ele não traz a sequencia que foi gravado pelo id !Como eu converto essa coluna para número, já pesquisei ontem a noite toda e não achei.Teria algum exemplo, eu achei uma função ela até ordena, mais ordena como texto também, fica do mesmo jeito.

postgres|690x291

Se a coluna já é integer, basta usar o order by.

select * from usuario order by idUsuario;

Se já está fazendo isso, e os dados descem ordenados na requisição (confira na aba de rede do inspetor do navegador), o problema então é só no lado cliente.

Está usando algum framework para trabalhar os dados (ex: react), ou está fazendo com código javascript próprio? Se é um framework, você precisa analisar como ele faz a ordenação dos dados, pois deve estar tratando essa coluna como texto/string.

Abraço.

Estou usando bootstrap, mais estou exibindo atraves de um td tr

<table class = "table table-hover table-bordered table-striped table-responsive{-sm|-md|-lg|-xl}" id="myTable">
<caption>Cadastro de Usuários</caption>	
		    <thead>
		    	<tr>
		    	 	<th onclick="sortTable(0)">Id</th>
		            <th>Usuario</th>
		            <th>Email</th>
		            <th>Telefone</th>
		            <th>Editar</th>
    			</tr>  
		    </thead> 
	         <tbody>
				<c:forEach var="item" items="${usuarios}"> 
					<tr> 
						<td data-label="id">
							<c:out   value="${item.idUsuario}"/>
						</td> 
						<td data-label="usuario">
							<c:out value="${item.nmUsuario}"/>
						</td> 
						<td data-label="email">
							<c:out value="${item.dsEmail}"/>
						</td> 
						<td data-label="telefone">
							<c:out value="${item.nrTelefone}"/>
						</td>							
                    	<td> <input type="text" name="usuario.dsEmail" value="<c:out value="${item.dsEmail}"/> " />-->
						<td data-label="botao">
							<a class="btn btn-warning btn-xs" href="read?usuario.idUsuario=${item.idUsuario}">Editar</a>
						</td>														
					</tr> 
				</c:forEach>
			</tbody>								

tentei

<td>
<%= Integer.paserInteger(${item.idUsuario}) %>
<c:out   value="${item.idUsuario}"/>
</td>

Mais não deu certo .nossa que chato

Mas os dados estão ordenados quando o forEach é executado? Se não, não adianta fazer parseInt. Ele não vai automaticamente ordenar os dados. Você precisa descer ou os dados já ordenados (por isso falei pra olhar se eles já descem ordenados na requisição), ou ordená-los antes de fazer o forEach.

Supondo que a função sortTable(0) faz a ordenação localmente (sem buscar os dados no servidor), você tem acesso à ela? Se sim, pode alterar a comparação na ordernação para ordenar por idUsuario, mas como int, usando o parseInt.

Abraço.

Boa noite!!!Obrigado [TerraSkilll]

Consegui resolver!!!

No meu método era só eu ter colocardo order by idusuario.Novato é um problema, já estava desistindo desse java.

@SuppressWarnings("unchecked")
public List<UsuarioModel> getListUsuarios(EntityManager entityManager){
	Query query = entityManager.createQuery("from UsuarioModel order by idusuario");
	List<UsuarioModel> usuarios = query.getResultList();
	return usuarios;
}