Skip to content

Instantly share code, notes, and snippets.

@regispires
Last active June 27, 2022 20:49
Show Gist options
  • Save regispires/bfd885ac960cd74ece817561800ccbba to your computer and use it in GitHub Desktop.
Save regispires/bfd885ac960cd74ece817561800ccbba to your computer and use it in GitHub Desktop.
Exemplo de métodos de conversão de Lista de Tuplas para Lista de Map e para Lista de ObjectNode (JSON / Jackson)
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.persistence.Tuple;
import javax.persistence.TupleElement;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public class Helper {
public static List<Map<String, Object>> toListMap(List<Tuple> results) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (Tuple t : results) {
List<TupleElement<?>> cols = t.getElements();
Map<String, Object> map = new HashMap<String, Object>();
for (TupleElement col : cols) {
map.put(col.getAlias(), t.get(col.getAlias()));
}
list.add(map);
}
return list;
}
public static List<ObjectNode> toListJson(List<Tuple> results) {
List<ObjectNode> list = new ArrayList<ObjectNode>();
ObjectMapper mapper = new ObjectMapper();
for (Tuple t : results) {
List<TupleElement<?>> cols = t.getElements();
ObjectNode one = mapper.createObjectNode();
for (TupleElement col : cols) {
Object alias = t.get(col.getAlias());
if (alias == null) {
one.putNull(col.getAlias());
} else if (alias instanceof Short) {
one.put(col.getAlias(), (Short) alias);
} else if (alias instanceof Integer) {
one.put(col.getAlias(), (Integer) alias);
} else if (alias instanceof Long) {
one.put(col.getAlias(), (Long) alias);
} else if (alias instanceof Float) {
one.put(col.getAlias(), (Float) alias);
} else if (alias instanceof Double) {
one.put(col.getAlias(), (Double) alias);
} else {
one.put(col.getAlias(), alias.toString());
}
}
list.add(one);
}
return list;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment