[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Hibernate bidirectional many-to-many issues
imavroukakis
do-not-reply at jboss.com
Sat Jul 12 19:16:26 EDT 2008
Hi,
I'm trying to play around with hibernate annotations, I'm coming up against a brick wall with a certain issue regarding a many to many relationship.
| @Entity
| public class Recipe implements Serializable{
|
| @Id
| @GeneratedValue(strategy = GenerationType.AUTO)
| @Column(name = "recipe_id")
| private Long id;
|
| @ManyToOne
| @JoinColumn(name="user_fk")
| private User user;
|
| @ManyToMany(
| targetEntity=gr.zymari.entities.Ingredient.class,
| cascade={CascadeType.ALL, CascadeType.MERGE}
| )
| @JoinTable(
| name="Recipe_Ingredients",
| joinColumns = @JoinColumn( name = "recp_id"),
| inverseJoinColumns = @JoinColumn( name = "ingr_id")
| )
| private Set<Ingredient> ingredients;
|
| public class Ingredient implements Serializable{
|
| @Id
| @GeneratedValue(strategy = GenerationType.AUTO)
| @Column(name = "ingredient_id")
| private Long id;
|
| private Integer quantity;
| private String name;
|
| @ManyToMany(
| cascade = {CascadeType.ALL, CascadeType.MERGE},
| mappedBy= "ingredients",
| targetEntity=Recipe.class
| )
| private Set<Recipe> recipies;
|
| @Entity
| public class User implements Serializable{
|
| @Id
| @GeneratedValue(strategy = GenerationType.AUTO)
| @Column(name = "user_id")
| private Long id;
|
| @OneToMany(mappedBy="user" ,cascade = {CascadeType.ALL, CascadeType.MERGE})
| private Set<Recipe> recipies;
|
This is the code that saves the User object
| Transaction tx = getHibSession().beginTransaction();
| tx.begin();
| Ingredient blackStuff = new Ingredient();
| blackStuff.setName("Chocolate");
| blackStuff.setMeasure(Measure.GRAM);
| blackStuff.setQuantity(100);
| recipe.addIngredient(blackStuff);
| user.addRecipe(recipe);
| recipe.setUser(user);
| getHibSession().saveOrUpdate(user);
| tx.commit();
|
The problem is that when I save the User object, it is persisted along with the Recipe object, however the table that is supposed to contain the many-to-many relationship of Recipe-Ingredient is empty. Can anyone shed some light on what I am doing wrong?
Thanks!
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4164052#4164052
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4164052
More information about the jboss-user
mailing list