Problema com Transitive persistence

Tenho duas entidades e preciso que ao atualizar um lado, a outra lista também seja atualizada. Olhando na documentação vi que transitive persistence serve pra isso. Porém ao colocar o cascade não está funcionando. O terceito código é o teste e no system.out deveria mostrar 1, mas está mostrando 0. Alguém sabe como resolver isso ?

@Entity
@Table(name = "PRODUCT")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Product implements java.io.Serializable
{
  @Id
  @Column(name = "CD_PRODUCT")
  @Length(max=10)
  @NotNull
  private String m_Code;
 
  @Column(name = "CD_UNIT")
  @Length(max=3)
  private String m_UnitCode;
 
  @Column(name= "NM_PRODUCT")
  @Length(max=50)
  private String m_Name;
 
  @ManyToMany(mappedBy = "m_Products")
  private List<Basket> m_Baskets;
} 
@Entity
@Table(name = "BASKET")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Basket implements java.io.Serializable
{
  @Column(name = "QT_MAX")
  private int m_MaxQty;
 
  @ManyToMany(cascade=CascadeType.ALL)
  @JoinTable(name="BASKET_PRODUCT",
  joinColumns={@JoinColumn(name="CD_BASKET", nullable=false)},
  inverseJoinColumns={@JoinColumn(name="CD_PRODUCT", nullable=false)})
  private List<Product> m_Products;
} 
HibernateUtil.GetSession().beginTransaction();
Product v_Product = Product.Get(p_ProductCode);
Basket v_Basket = Basket.Get(p_BasketCode);
v_Basket.add(v_Product);
System.out.println("Baskets: " + v_Product.numberOfBaskets());
HibernateUtil.GetSession().getTransaction().commit();
System.out.println("Baskets: " + v_Product.numberOfBaskets());