2012-01-14 2 views
0

я пытаюсь создать объект настойчивости клиента следующим образом:Невозможно создать SqlMap для PersistenceClient с Кэрнгормсом Persistence Library

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); 

проблемой я встречая является то, что «карта» свойство sqlmap пребывания не извлекается, даже если в объекте sqlmap имеется допустимый массив «_maps».

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

при попытке выполнить создание таблицы SQL, заявление завода жалуется:

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

как-то класс sqlmap не может скопировать свойства объекта, переданного ему в собственность карты с помощью Класс ObjectUtil.

Я не хочу использовать файл mxml, и я также не хочу использовать spicelib, как в примере.

Что я здесь делаю неправильно?

ответ

0

так я понял, что в моем случае как-то звонки в классе SqlMap к компонентам spicelib не работает:

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

массив свойств всегда был пуст.

однако, я взял исходный код Постоянство Lib и изменил цикл в ObjectUtil, чтобы перейти на свойства объекта непосредственно:

for (var propertyName:String in source) 

теперь работает, хотя я не очень рад, модифицировав класс ObjectUtil ... может быть, кто-то лучше потянет на это.

 Смежные вопросы

  • Нет связанных вопросов^_^