Question

J'essaye de créer un objet client de persistance de la manière suivante:

var create:Create = new Create();
create.sql = "CREATE TABLE IF NOT EXISTS REPOFILE( REPOFILEID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, CHECKSUM TEXT, BYTES INTEGER, CREATED INTEGER, UPDATED INTEGER, ISDIRECTORY INTEGER )";

var sqlMap:SqlMap = new SqlMap( { createRepoFileTable : create } );

connectionManager = new ConnectionManagerFactory().createConnectionManager();
persistenceClient = new PersistenceClient( sqlMap, connectionManager );

le problème que je rencontre est que la propriété "map" de sqlmap ne peut pas être récupérée même s'il existe un tableau "_maps" valide à l'intérieur de l'objet sqlmap.

maps    [] (@b812d09)   
    [0] Object (@b103d61)   
        createRepoFileTable com.adobe.cairngorm.persistence.api.grammar.Create (@b103a91)       
    length  1   

en essayant d'exécuter la table de création sql, la fabrique d'instructions se plaint:

Error: SQLERROR0014: Statement 'createRepoFileTable' not found in SQL map

D'une manière ou d'une autre, la classe sqlmap est incapable de copier les propriétés de l'objet qui lui est passé dans la propriété map en utilisant la classe ObjectUtil.

Je ne veux pas utiliser de fichier mxml et je ne veux pas non plus utiliser spicelib comme dans l'exemple.

qu'est-ce que je fais de mal ici?

Était-ce utile?

La solution

J'ai donc compris que dans mon cas, les appels de la classe SqlMap aux composants spicelib ne fonctionnaient pas:

var classInfo:ClassInfo=ClassInfo.forInstance(source);
var properties:Array=classInfo.getProperties();

le tableau des propriétés était toujours vide.

cependant, j'ai pris le code source de la bibliothèque de persistance et changé la boucle dans ObjectUtil pour passer directement en revue les propriétés de l'objet:

for (var propertyName:String in source)

maintenant ça marche, même si je ne suis pas vraiment content d'avoir modifié la classe ObjectUtil ... peut-être que quelqu'un a une meilleure vision de cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top