es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obteniendo este error “Debe haber exactamente 1 consulta en el valor de @Query o @DatabaseView” en el proyecto de Android Studio.

Necesito ayuda. Estoy obteniendo este error “Debe tener exactamente 1 consulta en el valor de @Query o @DatabaseView” en mi proyecto de Android Studio cuando compilo mi proyecto. Estoy obteniendo este error en mi archivo cartdao.java, el código está aquí:

“`java
package com.example.xyz;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import java.util.List;

@Dao
public interface CartDao {

<pre><code>@Insert
void insertNew(CartOffline cartOffline);

@Query("")
List<cartoffline> getall();

@Query("")
List<cartoffline> getCartProduct(String priceUnitId);

@Query("")
void updateObj(long quantity, String priceunitid);

@Query("")
void deleteObjbyPid(String priceunitid);

@Delete
void deleteObj(CartOffline cartOffline);

@Query("")
int getProductCount(String pId);

@Query("")
void deleteAll();
</code></pre>

}
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que debe haber exactamente una consulta en el valor de @Query o @DatabaseView. El error está ocurriendo porque cada una de las consultas definidas en la interfaz CartDao tiene una cadena vacía como valor, lo cual no está permitido.

    Para corregir este error, debes proporcionar una cadena de consulta SQL válida para cada anotación @Query. Debes definir una cadena de consulta SQL para cada método que recupere, actualice o elimine datos de la base de datos.

    Por ejemplo, si deseas recuperar todos los objetos CartOffline de la base de datos, tu consulta debería verse así:

    @Query(“SELECT * FROM CartOffline”)
    List getall();

    De manera similar, si deseas actualizar un objeto en la base de datos, tu consulta debería verse así:

    @Query(“UPDATE CartOffline SET quantity=:quantity WHERE priceunitid=:priceunitid”)
    void updateObj(long quantity, String priceunitid);

    Asegúrate de proporcionar los nombres correctos de tabla y columna en tus consultas SQL.

Comments are closed.