sql >> Databáze >  >> RDS >> Mysql

Hibernate – Existuje způsob, jak spojit 2 sloupce proti 1?

Řešení 1

Vytvořte zobrazení databáze v Table1 který odhaluje odkazování na cizí klíč Table2 . Promítněte cizí klíč z vašeho zaslaného dotazu, který stejně použijete pro zobrazení. Poté namapujte svou entitu na zobrazení.

Řešení 2

Použijte vzorec spojení :

Například v entitě mapované na Table1 definujte přidružení typu many-to-one s entitou mapovanou do Table2 (zdá se, že je to váš případ použití):

@ManyToOne
@JoinColumnsOrFormulas({
      @JoinColumnOrFormula([email protected](value="(SELECT t2.serial FROM Table2 t2 WHERE serial1 = t2.serial OR serial2 = t2.serial)", referencedColumnName="serial"))
    })
private Entity2 entity2;

Spojovací vzorce se však v Hibernate zatím zdají být velmi křehké (podařilo se mi, aby to fungovalo pouze pro mnohonásobnou asociaci a musel jsem vytvořit Entity2 implementovat Serializable; jinak to nefungovalo a vyhodilo to nějaký divný NullPointer- a ClassCastException s).



  1. Připojte PHP k MSSQL přes PDO ODBC

  2. klauzule mysql AND na stejném sloupci několikrát

  3. MySQL Pořadí podle čísla, Null poslední

  4. Dotaz na stupně separace