sql >> Databasteknik >  >> RDS >> Mysql

Hibernate - Finns det något sätt att slå samman 2 kolumner mot 1?

Lösning 1

Skapa en databasvy på Table1 som avslöjar främmande nyckel som refererar till Table2 . Projicera den främmande nyckeln från din postade fråga som du ändå kommer att använda för vyn. Mappa sedan din enhet till vyn.

Lösning 2

Använd anslutningsformel :

Till exempel i entiteten som är mappad till Table1 definiera många-till-en-associationen med entiteten som är mappad till Table2 (verkar vara ditt användningsfall):

@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;

Anslutningsformler verkar dock vara väldigt ömtåliga i Hibernate för tillfället (jag lyckades få detta att fungera endast för många-till-en-förening och jag var tvungen att göra Entity2 implementera Serializable; annars fungerade det inte och kastade några konstiga NullPointer- och ClassCastException s).



  1. MySQL automatisk sträng till heltal gjutning i var klausul?

  2. Python unicode-kodningsproblem

  3. Använder Geekbench 3.2 för att testa stora databasservrar

  4. Tuplar infogas inte sekventiellt i databastabellen?