Cairngorm Persistenceライブラリを使用してPersipenceClientのSQLMAPを作成できません
-
28-10-2019 - |
質問
私は次の方法で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クラスを変更したことはあまり幸せではありませんが、これは本当に幸せではありません...誰かがこれをよりよく考えているかもしれません。
所属していません StackOverflow