2017-04-13 2 views
1

を与える私は、コレクションアイテム「コル」は、埋め込みオブジェクト自体マッピングムーティレベル埋め込まれたコレクションは例外

@Embeddable 
public class Col { 

    @Embedded 
    private Emb emb; 

「を有し、EMB」オブジェクトは非常に簡単であるエンティティルート

@Entity 
public class Root { 
    @Id 
    String id; 

    @ElementCollection 
    @CollectionTable 
    List<Col> cols ; 

を持っています

@Embeddable 
public class Emb { 

    String embField; 

私は、データベース・テーブルは、その

ようなことを期待します

表:ROOT フィールド:ID

表:ROOT_COLS フィールド:ROOT_ID、この春のブートアプリケーションを起動するEMB_FIELD

は私には、ArrayIndexOutOfBoundsException

私はこの問題を解決するにはどうすればよい

を与えますか?

休止バージョン:5.0.12

org.springframework.beans.factory.BeanCreationException:エラー 'のEntityManagerFactory' クラスパスリソースに定義されている[ORG/springframework /ブーツ/自動設定/ ORM/JPA /名前を持つBeanを作成しますHibernateJpaAutoConfiguration.class]:initメソッドの呼び出しに失敗しました。入れ子にされた例外はjavax.persistence.PersistenceExceptionです:[PersistenceUnit:default] Hibernate SessionFactoryを構築することができません org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)〜[spring-beans-4.3.7 .RELEASE.jar:4.3.7.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7] .RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] at org.springframework .beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)で〜[春豆-4.3.7.RELEASE.jar:4.3.7.RELEASE] org.springframework.beansで 。 org.springframework.beans.factory.support.AbstractBeanFactory.getBeanで (:factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)〜[4.3.7.RELEASE春豆-4.3.7.RELEASE.jar] AbstractBeanFactory.java:197)〜[春豆-4.3.7.RELEASE.jar:4.3.7.RELEASE] org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1081)で 〜[spring-コンテキスト4.3.7.RELEASE.jar:4.3.7.RELEASE] org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:856)〜[ばねコンテキスト4.3.7.RELEASE.jarで 。 4.3.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)〜[ばねコンテキスト4.3.7.RELEASE.jar:4.3.7.RELEASE] org.springframework.boot.context.embeddedで 。 EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)〜[春-ブート1.5.2.RELEASE.jar:1.5.2.RELEASE] org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737)で [春-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370)[spring-boot-1.5.2.RELEASE.jar:1.5。 2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication。java:314)[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162)[spring-boot-1.5.2。 RELEASE.jar:1.5.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151)[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE] のch .admin.estv.map.Application.main(Application.java:33)[classes /:na] 原因:javax.persistence.PersistenceException:[PersistenceUnit:default] Hibernate SessionFactoryを構築できません をorg.hibernate.jpaに追加しました。 .boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954)〜[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build (EntityManagerFactoryBuilderImpl.java:882)〜[h (SpringHibernateJpaPersistenceProvider.java:60)〜[spring-orm-4.3.7。] RELEASE.jar:4.3.7.RELEASE] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353)〜[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370)〜[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] at org.springframework.orm.jpa。 AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359)〜[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] at org.springframewor org.springframework.beans.factory.supportの から、[Spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]を入力します。 AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)〜[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE] ... 16個の共通フレームが省略されました 原因:org.hibernate.MappingException:できませんでしたコレクションをインスタンス化するorg.hibernate.persister.collection.BasicCollectionPersister をorg.hibernate.persister.internal.PersisterFactoryImpl.createCollectionPersister(PersisterFactoryImpl.java:167)〜[hibernate-core-5.0.12.Final.jar:5.0.12。最終的に をorg.hibernate.persister.internal.PersisterFactoryImpl.createCollectionPersister(PersisterFactoryImpl.java:140)〜[hibernate-core-5.0.12.F inal.jar:5.0.12.Final] at org.hibernate.internal.SessionFactoryImpl(SessionFactoryImpl.java:399)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org .hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl .build(EntityManagerFactoryBuilderImpl.java:879)〜[hibernate-entitymanager-5.0.12.Final.jar:5.0.12.Final] ... 22の共通フレームが省略されました 原因:java.lang.ArrayIndexOutOfBoundsException:1 at org.hibernate.persister.collection.AbstractCollectionPersister.initCollectionPropertyMap(AbstractCollectionPersister.java:1914)〜[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.persister.collection.Abst (AbstractCollectionPersister.java:592)〜〜〜hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.persister.collection.AbstractCollectionPersister。(AbstractCollectionPersister.java:592)〜 [Hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.persister.collection.BasicCollectionPersister。(BasicCollectionPersister.java:57)〜[hibernate-core-5.0.12.Final。 jar:5.0.12.Final] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド)〜[na:1.8.0_121] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)〜[na:1.8 .0_121] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)〜[na:1.8.0_121] at java.lang.reflect.Constructor。newInstance(Constructor.java:423)〜[na:1.8.0_121] at org.hibernate.persister.internal.PersisterFactoryImpl.createCollectionPersister(PersisterFactoryImpl.java:152)〜[hibernate-core-5.0.12.Final.jar: 5.0.12.Final] ... 26共通フレームが省略されました

答えて

2

エンティティのデフォルトアクセスはフィールドですが、埋め込みオブジェクトの場合、デフォルトのアクセスはプロパティです。

だから、コルクラスは、私はより良いエラーメッセージ、その後は、ArrayIndexOutOfBoundsExceptionを愛しているだろう

@Embeddable 
@Access(AccessType.FIELD) 
public class Col { 
    @Embedded 
    private Emb emb; 

とEMBクラス

@Embeddable 
@Access(AccessType.FIELD) 
public class Emb { 
    String embField; 

する必要があります!

+0

私の場合、埋め込み可能なクラスが問題であるかどうかは不明でした。 @Accessアノテーションをすべての埋め込みクラスに適用して問題を解決しました。 –

関連する問題