sql >> データベース >  >> RDS >> Mysql

Hibernateの問題:@OneToManyアノテーションが重複を返す

    次のようにメソッドを変更する必要がある場合があります:

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

    また、addressesを変更します Setに :

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

    編集:

    ああ...EntryAddressidがあります @Idとして定義されています しかし、それはユニークではありません。 idを作成する必要があります 主キーをEntryの場合と同じように自動インクリメントします 。次に、EntryAddressに別のフィールドを作成します これは、Entryへの外部キーです。 entry_idのような名前 。




    1. MySQLは非主キーで自動インクリメントします

    2. 特定の期間の前後に存在する値をカウントします

    3. MariaDBでのWEEK()のしくみ

    4. PL / SQLパッケージのグローバル変数の値を動的に変更するにはどうすればよいですか?