1

저장소 확장뿐만 아니라 배포 확장을 쓸 수있게되었습니다.가져 오기 데이터 엔터티를 유지할 수 없습니다. 트랜잭션을 커밋하는 동안 오류가 발생했습니다.

아래에는 코어 로그에서 가져온 로그가 있으며, 모든 로그가 완벽하게로드되었음을 보여줍니다!

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의 enable logger level "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. 

감사

+0

안녕하십니까.보고있는 유일한 오류입니까? 로그 파일에서 스택 추적을 확인할 수 있습니까? 더 많은 오류 정보가 표시되지 않으면 루트 로깅을 설정할 수 있습니다 (루트 수준 = "디버그"로그백 .xml). –

+0

@Sea, 예,이게 유일한 예외입니다. 이미 JPABaseDAO를 디 컴파일 한 후에 level = "DEBUG"을 사용할 수 있습니다. 예외가 public에서 생성 된 것을 보았습니다. T create (T itemToCreate) throws StorageException 메소드, 내가 엔티티가 내 SQL 테이블에 따라 존재하는 이유가 무엇인지 모릅니다. 엔티티 코드도 게시 할 수 있습니다. –

+0

아마도 엔티티와 테이블간에 동기화되지 않은 작은 것이 있습니다. 더 잘 보시려면 logback.xml에 다음과 같이 입력하십시오 :

답변

1

당신이 당신의 ID 열이 정체성으로 올바르게 정의되지 않았거나 당신이 노력하고 있음을 시사한다 얻고있는 오류 :

나는 코어 파일에 예외 아래에 있어요 수동으로 값을이 열의 자동 생성 값으로 설정하십시오. 희망이 도움이됩니다.

감사합니다. 다니엘.

+0

@ sea_gull..thanks 또한 같은 생각이지만, 내 코드에서 ID에 대한 값을 설정하지 않는다는 것을 알 수 있습니다. SQL 수준에서 ID 열이있는 간단한 테이블을 ID (시드 1 및 증분 1)로 만들었습니다. Hibernate가 자동적으로이 질의를 시작하려고하는 SQL 레벨이나 Entity Class 레벨에서의 문제이다. –

+0

@ManojSingh는 모델 클래스로 질문을 업데이트 할 수 있습니까? –

0

ID 열은 db 수준에서 자동 증가로 설정되어야합니다. SQL Server의 예 http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/extending-content-delivery-storage-sdltridion-2011-1.aspx

"에 대한 sdltridionworld에 내 원래의 기사를 살펴 보라 열 ID는 IDENTITY (1,1)으로 정의된다, 그래서 우리가 값을 지정하지 않고, 하나에 의해 자동으로 증가합니다.

Oracle의

은 열 ID는 다음과 같이, 시퀀스 (즉, 값을 생성한다)를 사용하여 정의 될 필요가있다 : SEQ_PUBLISH_ACTIONS MAXVALUE 999,999,999,999,999 사이클 START WITH SEQUENCE를 만들/ CREATE OR 각 PUBLISH_ACTIONS ON INSERT 전에 트리거 PUBLISH_ACTIONS_KEY 교체 ROW BEGIN IF : 새 ID는 NU입니다. LL 그 후 SELECT SEQ_PUBLISH_ACTIONS.NEXTVAL INTO : new.ID FROM DUAL; END IF; END; / "

+0

나는 이미이 작업을 수행했다.하지만 Entity Class에 문제가있는 것 같아 참고 용으로 엔티티 클래스 코드를 게시 할 예정이다 !! –

0

문제 위 내 엔티티 클래스에 있었다, 나는 나의 ID 열에 대한 주석 아래에 추가해야합니다. 변경이 필요한 경우

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

제안 마십시오.

감사