Cairngorm Persistenceライブラリを使用してPersipenceClientのSQLMAPを作成できません

StackOverflow https://stackoverflow.com/questions/8865016

質問

私は次の方法でPersistenceクライアントオブジェクトを作成しようとしています。

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オブジェクト内に有効な「_Map」配列があるにもかかわらず、SQLMapの「マップ」プロパティが取得できないことです。

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

Create Table SQLを実行しようとすると、ステートメントファクトリーは次のように不満を述べています。

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

どういうわけか、SQLMAPクラスは、ObjectUtilクラスを使用して、オブジェクトに渡されたオブジェクトのプロパティをマッププロパティにコピーすることができません。

MXMLファイルを使用したくないし、例のようにSpiceLibを使用したくありません。

ここで何が間違っているのですか?

役に立ちましたか?

解決

だから、私の場合、SQLMapクラスのスピセリブコンポーネントへの呼び出しが機能しなかったことを理解しました。

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

プロパティアレイは常に空でした。

ただし、Persistence libのソースコードを取得し、Objectutilのループを変更して、オブジェクトのプロパティを直接確認しました。

for (var propertyName:String in source)

Objectutilクラスを変更したことはあまり幸せではありませんが、これは本当に幸せではありません...誰かがこれをよりよく考えているかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top