Derby - java.sql.SQLException: Columna 'table.column_name' no encontrado

Jevison7x:

Tengo estas 2 tablas: inventoryy product_categoriesambas tablas tienen una columna común llama businessId.

Ahora tengo 2 bases de datos, uno se encuentra alojado en MySQL y el otro en Derby ambas bases de datos tienen las mismas estructuras de la tabla.

Así que he estado ejecutando la siguiente consulta en ambas bases de datos:

SELECT * 
FROM INVENTORY
INNER JOIN PRODUCT_CATEGORIES
    ON INVENTORY.BUSINESSID = PRODUCT_CATEGORIES.BUSINESSID
    AND INVENTORY.CATEGORY = PRODUCT_CATEGORIES.CATEGORYNAME
WHERE INVENTORY.BUSINESSID = 1

Cuando ejecuto la consulta anterior utilizando el código Java a continuación, aparece un éxito ResultSettanto en las bases de datos, sin embargo Derby lanza una excepción cuando intento para obtener la businessIdcolumna de la product_categoriestabla

try(Connection conn = dbConfig.getDatabaseConnection())
{
    PreparedStatement pst = conn.prepareStatement(sql);
    pst.setInt(1, businessId);
    List<Product> products = new ArrayList<>();
    ResultSet rs = pst.executeQuery();
    while(rs.next())
    {
        ...
        int businessId = rs.getInt("product_categories.businessId"); //<-- This lines throws an exception
        ...
    }
}

Estoy recibiendo este mensaje de error:

java.sql.SQLException: Columna 'product_categories.businessId' no encontrado

Por favor, lo que está mal aquí?

GMB:

Las columnas en el conjunto de resultados no tienen el prefijo tabla de alias.

Reemplazar:

int businessId = rs.getInt("product_categories.businessId");

Con:

int businessId = rs.getInt("businessId");

NB: usando SELECT *por lo general no es una muy buena práctica; es mejor hacer una lista explicitamente las columnas que desea que devuelva la consulta. Esto hace que el guión de la consulta más clara, y puede ayudar a evitar conflictos de nombres cuando existe el mismo nombre de la columna en tablas diferentes que entran en juego en la consulta.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=186329&siteId=1
Recomendado
Clasificación