title: Apollo GraphQL merge cached data
body: <p>I have a page that consists of 2 components and each of them has its own request for data
  for example</p>
  <pre><code>&lt;MovieInfo movieId={queryParamsId}/&gt;
  
  const GET_MOVIE_INFO = `gql
    query($id: String!){
     movie(id: $id){
      name
      description
   }
  }`
  </code></pre>
  <p>Next component</p>
  <pre><code>&lt;MovieActors movieId={queryParamsId}/&gt;
  
  const GET_MOVIE_ACTORS = `gql
    query($id: String!){
     movie(id: $id){
      actors
   }
  }`
  </code></pre>
  <p>For each of these queries I use apollo hook</p>
  <p>const { data, loading, error } = useQuery(GET_DATA, {variable: {id: queryParamsId}}))</p>
  <p>Everything is fine, but I got a warning message:</p>
  <blockquote>
  <p>Cache data may be lost when replacing the movie field of a Query object.
  To address this problem (which is not a bug in Apollo Client), either ensure all objects of type Movie have IDs, or define a custom merge function for the Query.movie field, so InMemoryCache can safely merge these objects: { ... }</p>
  </blockquote>
  <p>It's works ok with google chrome, but this error affects Safari browser. Everything is crushing. I'm 100% sure it's because of this warning message. On the first request, I set Movie data in the cache, on the second request to the same query I just replace old data with new, so previous cached data is undefined. How can I resolve this problem?</p>