Дублированные записи при запросе объекта таблицы «один ко многим» с использованием Hibernate [duplicate]

Так я это делаю (есть много способов):

  1. Преобразовать данные в JSON
  2. Вызов AJAX , чтобы получить файл JSON
  3. Преобразовать JSON в объект Javascript

Пример:

ШАГ 1

<?php

   $servername = "localhost";
   $username = "";
   $password = "";
   $dbname="";
   $conn = new mysqli($servername, $username, $password,$dbname);

   if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
   } 

   $sql = "SELECT id, name ,image FROM phone";
   $result = $conn->query($sql);

   while($row =$result->fetch_assoc()){ 
      $v[]=$row;    
   }

  echo json_encode($v);

  $conn->close();
?>

ШАГ 2

function showUser(fnc) {
   var xhttp = new XMLHttpRequest();

   xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
         // STEP 3    
         var p=JSON.parse(this.responseText);}
       }
    }
1
задан user2343647 2 May 2013 в 16:02
поделиться

1 ответ

Вы можете избавиться от дубликатов с помощью ключевого слова DISTINCT:

SELECT DISTINCT parent FROM Parent parent JOIN parent.child child WHERE ...

EDIT: ключевое слово DISTINCT используется для повторного копирования дубликатов из результатов запроса, независимо от причины существования этих дубликатов. Иногда причиной являются дубликаты записей БД. Но чаще, дубликаты являются следствием JOIN заявлений, поэтому ваш прецедент является полностью законным.

Тем не менее, вы можете избежать явных объединений и ключевого слова DISTINCT, сделав отношение двунаправленным. Затем вы можете использовать неявные соединения посредством навигации:

SELECT parent FROM Parent parent WHERE parent.children...
1
ответ дан kostja 21 August 2018 в 14:52
поделиться
  • 1
    Спасибо, это сработало, но я думал, что ключевое слово DISTINCT должно устранить дубликаты, присутствующие в БД, а не дубликаты, сгенерированные запросом. – user2343647 2 May 2013 в 18:17
  • 2
    @ user2343647 - приветствую :) Я добавил дополнительную информацию - см. править – kostja 2 May 2013 в 19:14
Другие вопросы по тегам:

Похожие вопросы: