私は「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
私は何をすべきですか?
どうもありがとうございました!!