Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Problem z hibernacją:adnotacja @OneToMany zwraca duplikaty

Może być konieczne zmodyfikowanie metody w następujący sposób:

@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
    return sessionFactory.getCurrentSession()
      .createCriteria(Entry.class)
      .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
      .list();
}

Zmień także addresses do Set :

@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;

Edycja:

Och... W EntryAddress masz id zdefiniowany jako @Id ale nie jest wyjątkowy. Powinieneś zrobić id klucz podstawowy i automatycznie zwiększaj go, tak jak robisz to w Entry . Następnie utwórz kolejne pole w EntryAddress to jest klucz obcy do Entry o nazwie coś w stylu entry_id .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pętla skryptu Bash przez MySQL

  2. Dlaczego wykonanie zapytania wstawiającego czasami trwa tak długo?

  3. Dopasowanie adresu IP do zakresu adresów IP?

  4. ignorowanie pełnotekstowych odrzuconych słów mysql w zapytaniu

  5. jak wygenerować raport między dwiema datami przy użyciu datepicker,ajax,php,mysql.?