2

私は「A」エンティティを持っていList<String> MyListます:

@Entity(name = "A_table")
@Inheritance(strategy=InheritanceType.JOINED)
public class A implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String RepresentativeName;

    @ElementCollection
    @CollectionTable(name = "MyList_Table")
    private List<String> MyList;
}

この「A」エンティティに値を設定した後、ダービー テーブルからこのすべてのデータを削除したいと考えています。
しかし、CollectionTable (MyList_Table) から文字列を削除するにはどうすればよいですか?

HQLクエリで作ってみたのですが、エラーになってしまいました。

List<String> strList = em.createQuery("from MyList_Table").getResultList();
...
...   

エラー:

MyList_Table is not mapped [from MyList_Table]

クエリを正しく作成するにはどうすればよいですか?
この CollectionTable データを削除する別の方法があるかもしれません。

--------------------------------
更新:

私が使用したとき:
List<A> objectList = em.createQuery("from A_table").getResultList();
-> エラーが発生しました:
A_Table is not mapped [from A_Table].

そこで、この行をそのままにしておくことにしました:
List<A> objectList = query.getResultList().
しかし、それを削除しようとすると:

for (A a:objectList)
{
   if(....)
   {
     List<String> Mylist = a.getMyList();
      em.getTransaction().begin();
      em.remove(Mylist);
      em.getTransaction().commit();
   }
}

エラーが発生します:

org.hibernate.MappingException: Unknown entity: org.hibernate.collection.PersistentBag

だから私は"@IndexColumn"注釈を追加しようとします:

    .....
    @ElementCollection
    @CollectionTable(name = "A_Table")
    @IndexColumn(name= "indx")
    private List<String> MyList;
    ...

そして今、私はこのエラーを受け取ります:

org.hibernate.MappingException: Unknown entity: org.hibernate.collection.PersistentList

私は何をすべきですか?

どうもありがとうございました!!

4

1 に答える 1