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; } }