y por ultimo la tabla se carga a partir de una session de hibernate con una sentencia sql y de esta manera:
Object[] titulo = new Object[19]; //Son 19 columnas
// Creamos los titulos.
titulo[0] = "Producto";
titulo[1] = "Marca";
titulo[2] = "Modelo";
titulo[3] = "Categoría";
titulo[4] = "Origen";
titulo[5] = "Originalidad";
titulo[6] = "Tamaño";
titulo[7] = "Medida";
titulo[8] = "Codigo Artículo";
titulo[9] = "Precio Venta";
titulo[10] = "Color";
titulo[11] = "Id Item";
titulo[12] = "Material";
titulo[13] = "Presentación";
titulo[14] = "Iva";
titulo[15] = "Stock Mínimo";
titulo[16] = "Ganancia";
titulo[17] = "Forma Calculo";
titulo[18] = "Precio Costo";
modelo.setColumnIdentifiers(titulo); //Pone los titulos
Session session = SessionFactoryUtil.getSessionFactory().openSession(); //getCurrentSession();
session.beginTransaction();
java.util.List lista = session.createSQLQuery("SELECT * FROM producto.item ORDER BY descripcion").addEntity(Item.class).list();
Iterator iter = lista.iterator();
while (iter.hasNext()){
Object [] fila = new Object[19]; // Hay 19 columnas en la tabla
Item item = new Item();
item = (Item) iter.next();
if (item.isBaja() == false){
// Se rellena cada posición del array con una de las columnas de la tabla en base de datos.
// IdItem
fila[11] = item.getIdItem();
//Presentacion
Presentacion presentacion = new Presentacion();
Set presentaciones = new HashSet();
presentaciones = item.getPresentaciones();
Iterator iter2 = presentaciones.iterator();
while (iter2.hasNext()){
presentacion = (Presentacion)iter2.next();
}
if (presentacion.getDescripcion()==null){
fila[13] = " ";
}
else{
fila[13] = presentacion.getDescripcion();
}
//Iva
if (item.getIva()==null){
fila[14] = " ";
doIva = 0;
}
else{
fila[14] = item.getIva().getCantidad();
doIva = item.getIva().getCantidad();
}
//Nombre del Producto
fila[0] = item.getDescripcion();
//Precio Costo ///Ver tema nulos
fila[18] = item.getCostUnit();
doPrecioCosto = item.getCostUnit();
//Categoria
if (item.getCategoria()==null){
fila[3] = " ";
}
else{
fila[3] = item.getCategoria().getDescripcion();
}
//Modelo
if (item.getModeloItem()==null){
fila[2] = " ";
}
else{
fila[2] = item.getModeloItem().getDescripcion();
}
//Marca
if (item.getMarcaItem()==null){
fila[1] = " ";
}
else{
fila[1] = item.getMarcaItem().getDescripcion();
}
//Origen
if (item.getOrigen()==null){
fila[4] = " ";
}
else{
fila[4] = item.getOrigen().getDescripcion();
}
//Originalidad
if (item.getOriginalidad()==null){
fila[5] = " ";
}
else{
fila[5] = item.getOriginalidad().getDescripcion();
}
//Color
if (item.getColorItem()==null){
fila[10] = " ";
}
else{
fila[10] = item.getColorItem().getDescripcion();
}
//Tamaño
if (item.getTamano()==null){
fila[6] = " ";
}
else{
fila[6] = item.getTamano().getDescripcion();
}
//Material
if (item.getMaterial()==null){
fila[12] = " ";
}
else{
fila[12] = item.getMaterial().getDescripcion();
}
//CodigoArticulo
if (item.getCodigoArticulo()==null){
fila[8] = " ";
}
else{
fila[8] = item.getCodigoArticulo();
}
//Medida
if (item.getMedida()==null){
fila[7] = " ";
}
else{
fila[7] = item.getMedida();
}
//StockMinimo /////Controlar los valores nulos de la BBDD
DecimalFormat StockDecimal = new DecimalFormat("0");
fila[15] = StockDecimal.format(item.getStockMinimo());
//Ganancia y forma de calculo de ganancia
Ganancia ganancia = new Ganancia();
Set ganancias = new HashSet();
ganancias = item.getGanancias();
Iterator iter3 = ganancias.iterator();
while (iter3.hasNext()){
ganancia = (Ganancia)iter3.next();
}
if (ganancia.getCantidad()==0){ ///Ver el tema de nulos
fila[16] = 0;
doGanancia = 0;
if (ganancia.getFormaCalculoGanancia()==null){
fila[17] = " ";
sFormaCalculoGanancia = " ";
}
else{
fila[17] = ganancia.getFormaCalculoGanancia().getDescripcion();
sFormaCalculoGanancia = ganancia.getFormaCalculoGanancia().getDescripcion();
}
}
else{
fila[16] = ganancia.getCantidad();
doGanancia = ganancia.getCantidad();
if (ganancia.getFormaCalculoGanancia()==null){
fila[17] = " ";
sFormaCalculoGanancia = " ";
}
else{
fila[17] = ganancia.getFormaCalculoGanancia().getDescripcion();
sFormaCalculoGanancia = ganancia.getFormaCalculoGanancia().getDescripcion();
}
}
doPrecioVenta = CalculaPrecioVenta(doPrecioCosto, doIva, doGanancia, sFormaCalculoGanancia);
DecimalFormat PrecioVentaDecimal = new DecimalFormat("0.00");
fila[9] = PrecioVentaDecimal.format(doPrecioVenta);
// Se añade al modelo la fila completa.
modelo.addRow(fila);
}
}
session.close();