0

エラー: org.hibernate.MappingException: 不明なエンティティ: com.myapp.struts.timesheetForm

上記のエラーは、hibernate フレームワークを使用して Struts の Action クラス内の Bean からデータを保存しようとすると発生します。

主なファイル:

timeSheet.jsp
timesheetForm.java
timeSheetAction.java

TimeSheetData.java は私のポジョです。

休止状態を使用してデータベースからデータを抽出するのは簡単で、魔法のように機能します。timeSheet.jsp は完全に読み込まれます。

私の timesheetaction.java は、更新されたデータをデータベースに保存する予定の場所です。

フォームデータに基づいて bean オブジェクトを作成します。

timesheetdata.java に基づいてオブジェクトを作成します

beanutils を使用して、formbean のプロパティを pojo にコピーします。

次に、セッション オブジェクトを介して更新します。

私はそのnullを解決しましたが、それは私が解決できる限りです。

Session sess = HibernateUtil.getSessionFactory().getCurrentSession();
sess.beginTransaction();
timesheetForm formBean = (timesheetForm)form;
timeSheetData formData = new TimeSheetData();
formBean.setAdditionhours4_1(formBean.getAdditionhours1_1());
BeanUtils.copyProperties(formData, formBean);
sess.update(formData);
sess.getTransaction().commit();
sess.flush();
sess.close();
4

3 に答える 3

1
Session sess = HibernateUtil.getSessionFactory().getCurrentSession();

    Transaction tx = sess.beginTransaction();
    // extract user data
    timesheetForm formBean = (timesheetForm)form;

int count = 0;
   int loopConstraint = 0;

   while(loopConstraint < dataList.size())
   {

      int ID = Integer.parseInt(dataList.get(loopConstraint).toString());
      TimeSheetData formData = (TimeSheetData) sess.load(TimeSheetData.class, ID);

   //relevant additions to database

    sess.update(formData);
      sess.flush();
      sess.clear();

   }
      tx.commit();
于 2013-03-27T15:07:01.227 に答える
0

休止状態のマッピングを確認してください。この問題は、注釈の更新可能および挿入可能なパラメーターを変更することで簡単に対処できます。

たとえば、私の場合、次のように変更して解決しました。

@OneToMany
@JoinColumn(name = "columnPK", updatable = true, insertable = true)
private List<ObjectX> relatedElments;

これとともに:

@OneToMany
@JoinColumn(name = "columnPK", updatable = false, insertable = false)
private List<ObjectX> relatedElments;

説明は、このパラメーターは、他の「スーパー」テーブルを挿入/更新しようとしているときに、休止状態が関連テーブルを更新するのを防ぐということです。したがって、すべての休止状態の注釈を確認してください。

于 2014-04-25T14:09:00.300 に答える
0

更新できるレコードがないと思います

于 2013-03-08T13:06:51.477 に答える