title: Hibernate throws org.hibernate.AnnotationException: No identifier specified for entity: com..domain.idea.MAE_MFEView
body: <p>Why am I getting this exception?</p>
  
  <pre><code>package com.domain.idea;
  
  import javax.persistence.CascadeType;
  import javax.persistence.Entity;
  import javax.persistence.FetchType;
  import javax.persistence.JoinColumn;
  import javax.persistence.OneToOne;
  import javax.persistence.Table;
  
  import org.hibernate.annotations.AccessType;
  
  /**
   * object model for the view [InvestmentReturn].[vMAE_MFE]
   */
  @Entity
  @Table(name="vMAE_MFE", schema="InvestmentReturn")
  @AccessType("field")
  public class MAE_MFEView
  {
      /**
       * trade property is a SuggestdTradeRecommendation object
       */
      @OneToOne(fetch = FetchType.LAZY , cascade = { CascadeType.PERSIST })
      @JoinColumn(name = "suggestedTradeRecommendationID")
      private SuggestedTradeRecommendation trade;
  
      /**
       * Most Adeverse Excursion value
       */
      private int MAE;
  
      public int getMAE()
      {
          return MAE;
      }
  
      /**
       * Most Favorable Excursion value
       */
      private int MFE;
  
      public int getMFE()
      {
          return MFE;
      }
  
      /**
       * @return trade property
       * see #trade
       */
      public SuggestedTradeRecommendation getTrade()
      {
          return trade;
      }
  }
  </code></pre>
  
  <p>Update: I've changed my code to look like this:  </p>
  
  <pre><code>package com.domain.idea;
  
  import javax.persistence.CascadeType;
  import javax.persistence.FetchType;
  import javax.persistence.Entity;
  import javax.persistence.Id;
  import javax.persistence.JoinColumn;
  import javax.persistence.OneToOne;
  import javax.persistence.Table;
  
  import org.hibernate.annotations.AccessType;
  
  /**
   * object model for the view [InvestmentReturn].[vMAE_MFE]
   */
  @Entity
  @Table(name="vMAE_MFE", schema="InvestmentReturn")
  @AccessType("field")
  public class MAE_MFEView
  {
      /**
       * trade property is a SuggestdTradeRecommendation object
       */
      @Id
      @OneToOne(fetch = FetchType.LAZY , cascade = { CascadeType.PERSIST })
      @JoinColumn(name = "suggestedTradeRecommendationID")
      private SuggestedTradeRecommendation trade;
  
      /**
       * Most Adeverse Excursion value
       */
      private int MAE;
  
      public int getMAE()
      {
          return MAE;
      }
  
      /**
       * Most Favorable Excursion value
       */
      private int MFE;
  
      public int getMFE()
      {
          return MFE;
      }
  
      /**
       * @return trade property
       * see #trade
       */
      public SuggestedTradeRecommendation getTrade()
      {
          return trade;
      }
  }
  </code></pre>
  
  <p>but now I'm getting this exception:  </p>
  
  <pre><code>Caused by: org.hibernate.MappingException: Could not determine type for: com.domain.idea.SuggestedTradeRecommendation, at table: vMAE_MFE, for columns: [org.hibernate.mapping.Column(trade)]
      at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:292)
      at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:276)
      at org.hibernate.mapping.RootClass.validate(RootClass.java:216)
      at org.hibernate.cfg.Configuration.validate(Configuration.java:1135)
      at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1320)
      at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
      at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
      ... 145 more
  </code></pre>