2016-12-01 1 views
0

J'ai un problème où je reçois cette erreur:Raw Query est incapable de convertir blob à chaîne pour sélectionner la colonne de String []

Caused by: android.database.sqlite.SQLiteException: unknown error (code 0): Unable to convert BLOB to string 

Je reçois cette question avec ce morceau de code:

GenericRawResults<String[]> rawResults; 
       rawResults = DatabaseHelper.getHelper(this) 
         .getDaoForClass(Table1.class) 
         .queryRaw("SELECT idList, COUNT(*) FROM Table1 ORDER BY idList"); 
List<String[]> results = rawResults.getResults(); 

lorsque j'essaie de convertir rawResult en résultats. champ "idlist" est String []

j'ai essayé aussi il suffit de sélectionner la colonne avec cette requête:

SELECT idList FROM Table1 

Mais même erreur est apparue.

Fondamentalement, ce que j'essaie de faire est de sélectionner la fréquence des objets dont les identifiants sont contenus dans le champ idList String [].

Comme demandé, table à partir de laquelle je sélectionne est la suivante:

@DatabaseField(canBeNull = false, columnName = "type") 
@Expose 
@SerializedName("type") 
public Type type; 

@DatabaseField(columnName = "idList", dataType = DataType.SERIALIZABLE) 
@Expose 
@SerializedName("idList") 
public String[] idList; 

@DatabaseField(canBeNull = false, columnName = "occurredDate") 
@Expose 
@SerializedName("occurredDate") 
public Date occurredDate; 
+0

Pouvez-vous également montrer la structure de la table? –

+0

Données de la table @AdarshGangadharan ajoutées. – robigroza

+0

Je cherchais quelque chose qui me dira le nom de la colonne et le type de données avec la taille. La structure ci-dessus ne révélera pas la structure de la table de la base de données. –

Répondre

0

Ii idlist contient ids que vous voulez voir le compte alors peut-être la requête doit être comme

SELECT ID, COUNT(*) 
FROM Table1 
WHERE ID in (XXX) 
GROUP BY ID 
ORDER BY ID 

XXX - devrait être le idList converti en chaîne contenant des identifiants séparés par, par exemple. 1,2,3,4,5 ou '1', '2', '3' si l'id est une chaîne