1

Deployer 拡張機能と Storage 拡張機能の作成に成功しました。

以下は、コアログから取得したログで、すべてが完全にロードされていることを示しています!!

2013-01-08 11:30:19,759 INFO  BundleConfigurationLoader - Added 'PublishAction' for storage 'persistence' with 'com.tridion.storage.dao.JPAPublishActionDAO'.

2013-01-08 11:30:38,259 DEBUG JPAPublishActionDAO - Constructor of JPAPublishActionDAO- storageId:searchdb
2013-01-08 11:30:38,259 DEBUG JPAPublishActionDAO - Constructor of JPAPublishActionDAO- entityManagerFactory:true
2013-01-08 11:30:38,259 DEBUG JPAPublishActionDAO - Constructor of JPAPublishActionDAO- storageName:PublishAction

2013-01-08 11:19:38,400 INFO  Module - No TransformProcessor configured, will not transform files before deployment for module com.tridion.custom.extensions.SearchPageDeployer
2013-01-08 11:30:38,400 DEBUG SearchPageDeployer - Constructor of SearchPageDeployer //This is my PageDeployer Constructor


2013-01-08 11:30:38,744 DEBUG SearchPageDeployer - Called processPage from SearchPageDeployer //This is my process Page of pagedeployer class

2013-01-08 11:30:38,572 DEBUG SearchPageDeployer - SearchPageDeployer Called processItem
2013-01-08 11:30:38,572 DEBUG StorageManagerFactory - Default storage provider has caching set to: false
2013-01-08 11:30:38,572 DEBUG StorageManagerFactory - Loaded following dao Properties[publication=0, typeMapping=PublishAction, storageId=searchdb, cached=false] for publication/typeMapping/itemExtension: 0 / PublishAction / null
2013-01-08 11:30:38,572 DEBUG StorageManagerFactory - Loading a non cached DAO for publicationId/typeMapping/itemExtension: 0 / PublishAction / null
2013-01-08 11:30:38,572 DEBUG StorageManagerFactory - Wrapping DAO's, currently 0 wrappers installed
2013-01-08 11:30:38,572 INFO  JPAPublishActionDAO - Entering Method: JPAPublishActionDAO.PublishAction.store
2013-01-08 11:40:33,228 ERROR SearchPageDeployer - SearchPageDeployer - Exception occurred com.tridion.broker.StorageException: Unable to persist data entity, Error while commiting the transaction, Error while commiting the transaction

テーブルにデータを保存しようとすると、「例外が発生しました com.tridion.broker.StorageException: データ エンティティを永続化できません。トランザクションのコミット中にエラーが発生しました。トランザクションのコミット中にエラーが発生しました」

これは私のEntityクラスの問題ですか、それとも私が欠けているものですか。

EDIT:logback xmlでロガーレベル「ON」を有効にした後。

コアファイルで以下の例外が発生しました:

2013-01-08 14:42:10,713 DEBUG SQL - insert into AUTN_ITEMS (ACTION, FLAG, ITEM_TYPE, LAST_PUBLISHED_DATE, PUBLICATION_ID, SCHEMA_ID, TCMURI, URL, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
2013-01-08 14:42:10,728 DEBUG AbstractBatcher - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
2013-01-08 14:42:10,744 DEBUG JDBCExceptionReporter - could not insert: [com.tridion.storage.dao.PublishAction] [insert into AUTN_ITEMS (ACTION, FLAG, ITEM_TYPE, LAST_PUBLISHED_DATE, PUBLICATION_ID, SCHEMA_ID, TCMURI, URL, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?)]
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert explicit value for identity column in table 'AUTN_ITEMS' when IDENTITY_INSERT is set to OFF.

ありがとう

4

3 に答える 3

1

表示されるエラーは、ID 列が ID として正しく定義されていないか、この列の自動生成された値に手動で値を設定しようとしていることを示しています。お役に立てれば。

よろしく、ダニエル。

于 2013-01-08T13:52:55.187 に答える
0

上記の問題はエンティティクラスにありました。ID列に以下の注釈を追加する必要があります。

@Id
@Column(name = "ID", unique=true,updatable=false,insertable=false)
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

変更が必要な場合は提案してください。

ありがとう

于 2013-01-09T08:23:08.050 に答える
0

ID 列は、データベース レベルで自動インクリメントに設定する必要があります。例として、sdltridionworld に関する私の元の記事をご覧ください http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/extending-content-delivery-storage-sdltridion-2011-1.aspx

「SQL Server の場合、列 ID は IDENTITY(1,1) として定義されるため、値を指定しなくても自動的に 1 ずつ増加します。

Oracle の場合、次のように (値を生成する) シーケンスを使用して列 ID を定義する必要があります。 IS NULL THEN SELECT SEQ_PUBLISH_ACTIONS.NEXTVAL INTO :new.ID FROM DUAL; END IF; 終わり; / "

于 2013-01-08T21:25:24.010 に答える