Whenever I try and delete a question object, I'm getting this exception:
Code:
org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [jobprep.domain.Question#1]
Can anyone tell me what's wrong in the mapping file? What code do I need to add to the delete operation to make it work? Here is the mapping file:
Code:
<hibernate-mapping default-access="field" auto-import="true" default-lazy="false">
    <class name="jobprep.domain.User" table="user_account" abstract="true">
        <id name="id" column="user_account_id" type="long">
            <generator class="sequence">
                <param name="sequence">user_account_id_sequence</param>
            </generator>
        </id>
        <discriminator column="user_type" type="string"/>
        <property name="firstName" column="first_name"/>
        <property name="lastName" column="last_name"/>
        <property name="emailAddress" column="email_address"/>
        <property name="username" column="username"/>
        <property name="password" column="password"/>
        <subclass name="jobprep.domain.Student" discriminator-value="STUDENT">
            <bag name="activeModules" inverse="true" cascade="all" lazy="true">
                <key column="user_account_id" not-null="true"/>
                <one-to-many class="jobprep.domain.ActiveModule"/>
            </bag>
        </subclass>
        <subclass name="jobprep.domain.Teacher" discriminator-value="TEACHER">
            <many-to-one name="educationFacility" class="jobprep.domain.EducationFacility"
                         column="education_facility_id" not-null="true" />
            <bag name="students" inverse="true" cascade="none" lazy="true">
                <key column="user_account_id" not-null="true"/>
                <one-to-many class="jobprep.domain.Student"/>
            </bag>
        </subclass>
        <subclass name="jobprep.domain.Admin" discriminator-value="ADMIN">
            <bag name="modules" inverse="true" cascade="all" lazy="true">
                <key column="user_account_id" not-null="true"/>
                <one-to-many class="jobprep.domain.Module"/>
            </bag>
            <bag name="educationFacilities" inverse="true" cascade="all" lazy="true">
                <key column="user_account_id" not-null="true"/>
                <one-to-many class="jobprep.domain.EducationFacility"/>
            </bag>
        </subclass>
    </class>
    <class name="jobprep.domain.EducationFacility" table="education_facility">
        <id name="id" column="education_facility_id" type="long">
            <generator class="sequence">
                <param name="sequence">education_facility_id_sequence</param>
            </generator>
        </id>
        <property name="name" column="name"/>
        <bag name="teachers" inverse="true" cascade="all" lazy="true">
            <key column="education_facility_id" not-null="true"/>
            <one-to-many class="jobprep.domain.Teacher"/>
        </bag>
        <bag name="allowedModules" table="modules_to_education_facilities" inverse="true" cascade="all" lazy="true">
            <key column="education_facility_id" not-null="true"/>
            <many-to-many class="jobprep.domain.Module" column="module_id"/>
        </bag>
        <many-to-one name="admin" class="jobprep.domain.Admin" column="user_account_id" not-null="true" />
    </class>
    <class name="jobprep.domain.Hint" table="hint">
        <id name="id" column="hint_id" type="long">
            <generator class="sequence">
                <param name="sequence">hint_id_sequence</param>
            </generator>
        </id>
        <many-to-one name="question" class="jobprep.domain.Question" column="question_id"  not-null="true" cascade="none" />
        <property name="text" column="text"/>
        <property name="attemptsNeeded" column="attempts_needed"/>
    </class>
    <class name="jobprep.domain.Answer" table="answer" abstract="true">
        <id name="id" column="answer_id" type="long">
            <generator class="sequence">
                <param name="sequence">answer_id_sequence</param>
            </generator>
        </id>
       <discriminator column="type" type="string"/>
       <many-to-one name="question" class="jobprep.domain.Question" column="question_id" not-null="true" cascade="none" />
       <property name="originality" column="originality" />
       <property name="text" column="text" />
       <subclass name="jobprep.domain.TextAnswer" discriminator-value="TEXT">
          <property name="looseMatching" column="loose_matching"/>
       </subclass>
       <subclass name="jobprep.domain.RegexAnswer" discriminator-value="REGEX">
          <property name="regularExpression" column="regular_expression"/>
       </subclass>
    </class>
    <class name="jobprep.domain.Question" table="question">
        <id name="id" column="question_id" type="long">
            <generator class="sequence">
                <param name="sequence">question_id_sequence</param>
            </generator>
        </id>
        <property name="text" column="text"/>
       <many-to-one name="task" class="jobprep.domain.Task" column="task_id" not-null="true" />
       <bag name="activeQuestions" inverse="true" cascade="all-delete-orphan" lazy="true">
           <key column="question_id" not-null="true"/>
           <one-to-many class="jobprep.domain.ActiveQuestion"/>
       </bag>
       <bag name="answers" inverse="true" cascade="all-delete-orphan" lazy="false">
           <key column="question_id" not-null="true"/>
           <one-to-many class="jobprep.domain.Answer" />
       </bag>
        <bag name="hints" inverse="true" cascade="all-delete-orphan" lazy="false">
            <key column="question_id" not-null="true"/>
            <one-to-many class="jobprep.domain.Hint"/>
        </bag>
        <property name="points" column="points"/>
    </class>
    <class name="jobprep.domain.ActiveQuestion" table="active_question">
        <id name="id" column="active_question_id" type="long">
            <generator class="sequence">
                <param name="sequence">active_question_id_sequence</param>
            </generator>
        </id>
        <property name="isAnswered" column="is_answered"/>
        <property name="failedAttempts" column="failed_attempts"/>
        <many-to-one name="question" class="jobprep.domain.Question" column="question_id"
                     not-null="true" cascade="none" />
    </class>
    <class name="jobprep.domain.Task" table="task">
        <id name="id" column="task_id" type="long">
            <generator class="sequence">
                <param name="sequence">task_id_sequence</param>
            </generator>
        </id>
        <property name="name" column="name"/>
       <many-to-one name="module" class="jobprep.domain.Module" column="module_id" not-null="true" />
        <set name="questions" inverse="true" cascade="all-delete-orphan" lazy="false" fetch="join">
            <key column="task_id" not-null="true"/>
            <one-to-many class="jobprep.domain.Question"/>
        </set>
    </class>
    <class name="jobprep.domain.Module" table="module">
        <id name="id" column="module_id" type="long">
            <generator class="sequence">
                <param name="sequence">module_id_sequence</param>
            </generator>
        </id>
        <property name="name" column="name"/>
        <many-to-one name="admin" class="jobprep.domain.Admin" column="user_account_id" not-null="true" />
        <bag name="tasks" inverse="true" cascade="all-delete-orphan" lazy="true">
            <key column="module_id" not-null="true"/>
            <one-to-many class="jobprep.domain.Task"/>
        </bag>
    </class>
    <class name="jobprep.domain.ActiveModule" table="active_module">
        <id name="id" column="active_module_id" type="long">
            <generator class="sequence">
                <param name="sequence">active_module_id_sequence</param>
            </generator>
        </id>
        <property name="isComplete" column="is_complete"/>
        <many-to-one name="module" class="jobprep.domain.Module" column="module_id" not-null="true" />
        <bag name="students" inverse="true" cascade="all-delete-orphan" lazy="true">
            <key column="active_module_id" not-null="true"/>
            <one-to-many class="jobprep.domain.Student"/>
        </bag>
    </class>
</hibernate-mapping>