sql >> Database teknologi >  >> RDS >> Mysql

Dvaleproblem:@OneToMany-annotering returnerer dubletter

Du skal muligvis ændre din metode som sådan:

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

Skift også addresses til et Set :

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

Rediger:

Åh...I EntryAddress du har id defineret som @Id men det er ikke enestående. Du skal lave id den primære nøgle og få den til at stige automatisk, som du gør i Entry . Opret derefter endnu et felt i EntryAddress det er fremmednøglen til Entry kaldet noget som entry_id .




  1. Brug af OpenVPN til at sikre adgang til din databaseklynge i skyen

  2. Hvordan genererer jeg scripts til alle tabeller med enkelt streg i SQL Server 2000?

  3. wildfly registrerer mysql som en datakilde

  4. Sammenkæd XMLType-noder i Oracle-forespørgsel