[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - How remove an element from a list?
ByDcc
do-not-reply at jboss.com
Mon Nov 19 18:30:15 EST 2007
Hello,
I am trying to remove and element from a list but I don't get it.
I have a category and details for this category.
Relevant code for Category:
@Entity
| @Table(name = "category", catalog = "CartStore", uniqueConstraints = {})
| public class Category implements java.io.Serializable {
| // Fields
| private long id;
| private String name;
| private String description;
| private String sortDescripcion;
| private Long creatorId;
| private Date creationDate;
| private Date modificationDate;
| private CategoryContext categoryContext = null;
| ...
| @Id @GeneratedValue
| @Column(name = "id", unique = true, nullable = false, insertable = true, updatable = false)
| public long getId() {
| return this.id;
| }
|
| public void setId(long id) {
| this.id = id;
| }
| ....
| @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "category")
| public Set<CategoryDetails> getCategoryDetailses() {
| return this.categoryDetailses;
| }
|
| public void setCategoryDetailses(Set<CategoryDetails> categoryDetailses) {
| this.categoryDetailses = categoryDetailses;
| }
Relevant code for CategoryDetail:
@Entity
| @Table(name = "category_details", catalog = "CartStore", uniqueConstraints = {})
| public class CategoryDetails implements java.io.Serializable {
| // Fields
| private long id;
| private Category category;
| private String name;
| private String value;
| private String type;
| ....
| @Id @GeneratedValue
| @Column(name = "id", unique = true, nullable = false, insertable = true, updatable = false)
| public long getId() {
| return this.id;
| }
|
| public void setId(long id) {
| this.id = id;
| }
| .....
| @ManyToOne(cascade = {}, fetch = FetchType.LAZY)
| @JoinColumn(name = "category_id", unique = false, nullable = false, insertable = true, updatable = false)
| public Category getCategory() {
| return this.category;
| }
|
| public void setCategory(Category category) {
| this.category = category;
| }
The code I run:
tm.begin();
| CategoryDetails categoryDetail = em.find(CategoryDetails.class, idCategoryDetail);
| categoryDetail.setName("To remove");
| Category category = categoryDetail.getCategory();
| Set categoryDetails = category.getCategoryDetailses();
| for(Iterator it = categoryDetails.iterator(); it.hasNext();) {
| CategoryDetails cdx = (CategoryDetails)it.next();
| cdx.getId(); // Lazy
| }
| categoryDetails.remove(categoryDetail);
| categoryDetail.setCategory(null);
| category.setCategoryDetailses(categoryDetails);
| em.merge(category);
| tm.commit();
The element is not removed and sentece sql that I see is:
2007-11-20 00:02:54,375 [main] DEBUG org.hibernate.SQL -
| update
| CartStore.category_details
| set
| name=?,
| value=?,
| type=?
| where
| id=?
| Hibernate:
| update
| CartStore.category_details
| set
| name=?,
| value=?,
| type=?
| where
| id=?
What i am doing bad?
Thank you.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4106201#4106201
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4106201
More information about the jboss-user
mailing list