title: Error updating Spring-data-jpa on MappedSuperclass
body: <p>I got an error on startup upgrading from version 1.4.3 to 1.5+ or 1.6.0;
  I am using Hibernate 4.3.5</p>
  
  <p>The exception is:
  org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'IAccountRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: This class [class com.model.entities.BaseEntity] does not define an IdClass</p>
  
  <p>and the entities:</p>
  
  <pre><code>@MappedSuperclass
  @EntityListeners(EntityAuditListener.class)
  public abstract class BaseEntity implements Serializable {
  
      private static final long serialVersionUID = 1L;
  
      @Audited
      @Basic(optional = false)
      @Column(name = "isactive", nullable = false, columnDefinition = "BOOLEAN DEFAULT TRUE")
      private boolean isActive = true;
  
      protected BaseEntity() {
      }
  
      protected BaseEntity(boolean isActive) {
          this.isActive = isActive;
      }
  
      ........... more attributes and getters and setters
  }
  
  @Entity
  @Table(name = "accounts", schema = "public")
  @SequenceGenerator(name = "seq_account", sequenceName = "seq_account", initialValue = 1, allocationSize = 1)
  @Audited
  public class Account extends BaseEntity implements Serializable {
  
      private static final long serialVersionUID = 1L;
  
      @Id
      @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_account")
      @Column(name = "accountid")
      private Long accountId;
  
      ---- more attributes and getters and setters
  }
  </code></pre>
  
  <p>To me it looks like Spring-data-jpa checks hierarchy in the same way Hibernate does but considering the super class as an entity.</p>
  
  <p>Do you know if it's my error or a bug and any workaround?</p>
  
  <p>Many thanks.</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>MY repositories are as follow:</p>
  
  <pre><code>@Transactional(propagation = Propagation.MANDATORY)
  @NoRepositoryBean
  public interface IBaseRepository&lt;T extends BaseEntity, ID extends Serializable&gt; extends JpaRepository&lt;T, ID&gt;, JpaSpecificationExecutor&lt;T&gt; {
      public Page&lt;T&gt; findByIsActiveTrue(Pageable pageable);
  
      public List&lt;T&gt; findByIsActiveTrue();
  }
  
  @Transactional(propagation = Propagation.MANDATORY)
  public interface IAccountRepository extends IBaseRepository&lt;Account, Long&gt; {
  
      -- mix of queries by method name like:
      public Account findByAccountIdAndIsActiveTrue(Long accountId);
  
      -- and @Query like:
      @Query(value = "SELECT COALESCE(SUM(a.accountCreditLimit), 0) FROM Account a WHERE a.name = :name")
      public BigDecimal readAccountCreditLimits(@Param("name") String accountName);
  }
  ------ and many more repositories as above
  </code></pre>