2013-05-16 4 views
0

어노테이션을 최대 절전 모드로 새로 도입했습니다. Merchant와 MerchantDeal 테이블 두 개가 있는데이 테이블 사이에 외래 키가 있습니다.이미 생성 된 테이블에 @ManyToOne 어노테이션이 있습니다.

MerchantDeal 테이블에 데이터를 삽입하려고하면 하나 이상의 열이 생성되고 데이터 삽입이 일어나지 않습니다.

코드는 다음과 같습니다

31 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.GA 
47 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: uk.co.wowcher.cashback.domain.beans.Merchant 
78 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity uk.co.wowcher.cashback.domain.beans.Merchant on table CB_MERCHANT 
109 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: uk.co.wowcher.cashback.domain.beans.MerchantDeal 
109 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity uk.co.wowcher.cashback.domain.beans.MerchantDeal on table CB_MERCHANTDEAL 
109 [main] INFO org.hibernate.cfg.AnnotationBinder - Binding entity from annotated class: uk.co.wowcher.cashback.domain.beans.MerchantDealType 
109 [main] INFO org.hibernate.cfg.annotations.EntityBinder - Bind entity uk.co.wowcher.cashback.domain.beans.MerchantDealType on table CB_MERCHANTDEALTYPE 
140 [main] INFO org.hibernate.cfg.annotations.CollectionBinder - Mapping collection: uk.co.wowcher.cashback.domain.beans.Merchant.merchantDeals -> CB_MERCHANTDEAL 
140 [main] INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring 
May 16, 2013 7:39:58 PM org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory 
INFO: Building new Hibernate SessionFactory 
140 [main] INFO org.hibernate.cfg.search.HibernateSearchEventListenerRegister - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled. 
May 16, 2013 7:39:58 PM org.hibernate.connection.ConnectionProviderFactory newConnectionProvider 
INFO: Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: RDBMS: Oracle, version: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 
With the Partitioning, OLAP and Data Mining options 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JDBC driver: Oracle JDBC driver, version: 9.2.0.1.0 
May 16, 2013 7:39:58 PM org.hibernate.dialect.Dialect <init> 
INFO: Using dialect: org.hibernate.dialect.OracleDialect 
May 16, 2013 7:39:58 PM org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory 
INFO: Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory 
May 16, 2013 7:39:58 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup 
INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Automatic flush during beforeCompletion(): disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Automatic session close at end of transaction: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JDBC batch size: 15 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JDBC batch updates for versioned data: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Scrollable result sets: enabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JDBC3 getGeneratedKeys(): disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Connection release mode: auto 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Default batch fetch size: 1 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Generate SQL with comments: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Order SQL updates by primary key: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory 
INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 
May 16, 2013 7:39:58 PM org.hibernate.hql.ast.ASTQueryTranslatorFactory <init> 
INFO: Using ASTQueryTranslatorFactory 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Query language substitutions: {} 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: JPA-QL strict compliance: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Second-level cache: enabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Query cache: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory createCacheProvider 
INFO: Cache provider: org.hibernate.cache.NoCacheProvider 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Optimize cache for minimal puts: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Structured second-level cache entries: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Echoing all SQL to stdout 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Statistics: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Deleted entity synthetic identifier rollback: disabled 
May 16, 2013 7:39:58 PM org.hibernate.cfg.SettingsFactory buildSettings 
INFO: Default entity-mode: pojo 
May 16, 2013 7:39:58 PM org.hibernate.impl.SessionFactoryImpl <init> 
INFO: building session factory 
May 16, 2013 7:39:58 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance 
INFO: Not binding factory to JNDI, no JNDI name configured 
May 16, 2013 7:39:58 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute 
INFO: Running hbm2ddl schema update 
May 16, 2013 7:39:58 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute 
INFO: fetching database metadata 
May 16, 2013 7:39:58 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute 
INFO: updating schema 
May 16, 2013 7:39:58 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: table found: TRAIN2.CB_MERCHANT 
May 16, 2013 7:39:58 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: columns: [merchant_description, trackingstats_id, terms_conditions, merchant_name, terms, specialbonusavailabile, merchant_code, specialbonusavailability, merchant_url, merchant_logourl, active, specialbonus, merchant_id, merchant_exclusive] 
May 16, 2013 7:39:58 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: foreign keys: [fk_trackingstats_id] 
May 16, 2013 7:39:58 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: indexes: [sys_c00311639] 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: table found: TRAIN2.CB_MERCHANTDEAL 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: columns: [merchantdealtype_id, product_id, dealdeleted_date, valid_from, terms, merchantdeal_description, merchantdeal_id, printable, offertitle, voucher_code, productimage_url, cashbackrate, price_id, merchantdeal_url, merchantdeal_exclusive, cashbackratetype_id, merchant_id, toshow, withcashback, valid_to] 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: foreign keys: [fk_price_id, fk_cashbackratetype_id, fk_merchantdealtype_id, fk_merchant_id_10] 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: indexes: [sys_c00311633] 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: table found: TRAIN2.CB_MERCHANTDEALTYPE 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: columns: [merchantdealtype_id, merchantdealtype_name, merchantdealtype_description, merchantdealtype_code] 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: foreign keys: [] 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.TableMetadata <init> 
INFO: indexes: [sys_c00311535] 
May 16, 2013 7:39:59 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute 
INFO: schema update complete 

감사 :

Merchant 
{ 

@Id 
@Column(name="MERCHANT_ID") 
private int iMerchantId; 
@Column(name="MERCHANT_NAME") 
private String sName; 
@Column(name="MERCHANT_CODE") 
private int iMerchantCode; 
@Column(name="MERCHANT_URL") 
private String sUrl; 
@Column(name="MERCHANT_DESCRIPTION") 
private String sDescription; 
@Column(name="MERCHANT_LOGOURL") 
private String sLogoUrl; 
@Column(name="TERMS") 
private String sTerms; 
@Column(name="ACTIVE") 
private boolean bIsActive; 
@Column(name="MERCHANT_EXCLUSIVE") 
private boolean bIsExclusive; 
@Column(name="TERMS_CONDITIONS") 
private String sTermsAndConditions; 

@OneToMany(mappedBy="merchant") 
private List<MerchantDeal> merchantDeals; 

} 

MerchantDeal 
{ 

@Id 
@Column(name="MERCHANTDEAL_ID") 
@GeneratedValue 
private int iMerchantDealId; 

@OneToOne 
@PrimaryKeyJoinColumn 
private MerchantDealType oMerchantDealType; 

@Column(name="MERCHANTDEAL_DESCRIPTION") 
private String sDescription; 
@Column(name="MERCHANTDEAL_URL") 
private String sMerchantDealUrl; 
@Column(name="MERCHANTDEAL_EXCLUSIVE") 
private boolean bIsExclusive; 
@Column(name="CASHBACKRATE") 
private float fCashBackRate; 
@Column(name="OFFERTITLE") 
private String sOfferTitle; 
@Column(name="WITHCASHBACK") 
@Type(type="yes_no") 
private boolean bIsWithCashBack; 
@Column(name="PRINTABLE") 
@Type(type="yes_no") 
private boolean bIsPrintable; 
@Column(name="VOUCHER_CODE") 
private String sVoucherCode; 
@Column(name="VALID_FROM") 
private Date dValidFrom; 
@Column(name="VALID_TO") 
private Date dValidTo; 
@Column(name="PRODUCT_ID") 
private int iProductId; 
@Column(name="PRODUCTIMAGE_URL") 
private String sProductImageUrl; 
@Column(name="TOSHOW") 
@Type(type="yes_no") 
private boolean bToShow; 
@Column(name="DEALDELETED_DATE") 
private Date dDealDeletedDate; 

@ManyToOne 
@MapsId 
private Merchant merchant; 

@Column(name="TERMS") 
private String sTerms; 

} 

이 콘솔입니다.

+0

콘솔 로그를 친절하게 게시하십시오. – hd1

+0

은 방금 콘솔 로그를 게시했습니다. –

+0

@MapsId는 ManyToOne 관계가 채워질 id 속성을 가리키는 데 사용됩니다. MerchantDeal에 id 속성도 표시해야합니다. – Chris

답변

0

이 솔루션을 해결했습니다. 실제로 MerchantDeal Table 1에 더 많은 데이터를 삽입하는 중에 문제가 발생합니다. 내 "spring-servlet.xml"파일의 문제라고 생각합니다.

내 이전 봄-servlet.xml 파일은 다음과 같습니다

...... 
...... 
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="myDataSource" /> 
     <property name="mappingResources"> 
      <list> 
       <value>Merchant.hbm.xml</value> 
       <value>MerchantDeal.hbm.xml</value> 
       <value>MerchantDealType.hbm.xml</value> 
       <value>CommissionGroup.hbm.xml</value> 
       <value>RateType.hbm.xml</value> 
       <value>InventoryUnitType.hbm.xml</value> 
       <value>PremiumPlacementType.hbm.xml</value><!-- 
       <value>uk.co.wowcher.cashback.domain.beans.PremiumPlacementType</value> --> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
       <prop key="hibernate.hbm2ddl.auto" >update</prop> 
      </props> 
     </property> 
    </bean> 

자, 난 그냥 봄-servlet.xml 파일에서

<prop key="hibernate.hbm2ddl.auto" >update</prop> 

라인을 제거하고 @JoinColumn에 @MapsId 대체이 코드에서 (name = "MERCHANT_ID"). 이제 내가 원하는대로 일하고있다.

관련 문제