Hi,
There is two class, parent and child, so we could call them
@Entity
class Child implements Serializable {
...
@ManyToOne
public void setParent( Parent parent ) {
this.parent = parent;
}
}
@Entity
class Parent implements Serializable {
...
@OneToMany
public List<Child> getChildren() {
return children;
}
public Child addChild( String name ) {
if (children == null)
children = new ArrayList<Child>();
Child child = new Child( name );
child.setParent( this );
children.add( child );
return child;
}
}
@Stateless
@SecurityDomain( "mySecurityDomain" )
class ParentManagerBean implements ParentManager {
...
@RolesAllowed( "admin" )
public Parent addParent( String name ) {
Parent parent = new Parent( name );
manager.persist( parent ); // manager = EntityManager ...
return parent;
}
@RolesAllowed( "admin" )
public void updateParent( Parent parent ) {
manager.merge( parent );
}
}
@Stateless
@SecurityDomain( ... )
class ChildManagerBean implements ChildManager {
...
@RolesAllowed( { "admin", "regular" } )
public Child addChild( String name, Parent parent ) {
Child child = parent.addChild( name );
manager.persist( child );
return child;
}
}