anchor.diff:  <%= j_constructors(entity) %>
   <%= j_declared_attribute_and_relation_accessors(entity) %>
   <%= j_equals_method(entity) %>
  -<%= j_to_string_methods(entity) %>
  -
  -<% if !entity.extends %>
  +<%= j_to_string_methods(entity) -%>
  +<% if !entity.extends -%>
  +
     protected final boolean removed()
     {
       return _removed;
  
positive.code:         <%= attribute.jpa.field_name %>.remove<%= attribute.inverse.name %>( this );
        }
  <% end %>  }
  
  <%
        entity.codependent_constraints.select {|c| jpa_validation_in_jpa?(c) }.each do |c|
          attributes = c.attribute_names.collect {|attribute_name| entity.attribute_by_name(attribute_name)}
  
negative.code:     {
        throw new IllegalStateException( "Attempting to remove already removed entity" );
      }
  <% if entity.extends -%>
      super.postRemove();
  <% else -%>
      _removed = true;
  <% end -%>
    }
  
    @javax.persistence.PreRemove
  