1

コンテンツパック クラス、

@Entity
public class ContentPack {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Property
private String name;

@OneToMany  // ????
private List<ContentItem> songsList;
}

次に ContentItem クラス、

@Entity
public class ContentItem {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    private String mp3Url;
}

しかし、次を呼び出そうとすると、

session.beginTransaction();
session.save(contentPack);
session.getTransaction().commit();

次のエラーが表示されます。エラーが発生すると思いlistます。どうすれば修正できますか?

エラー :

org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:188)
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
4

1 に答える 1

1

次のように、songList を空白/空のリストで初期化します。

private List<ContentItem> songsList = new ArrayList<ContentItem>();

これで問題が解決するかどうかはわかりません。そうでない場合は、 ContentPackを保存するための詳細なコードと、その中でContentItemを設定する方法を共有できます。

于 2012-10-25T11:51:17.017 に答える