Měl jsem stejný problém a byl jsem schopen vykopat kód, abych zjistil příčinu, alespoň v mém případě. Nevím, zda to bude pro vás stejný problém, ale může to být užitečné.
Z vašeho trasování zásobníku vidím, že máte nastaven hibernate.hbm2ddl.auto na upgrade schématu. V rámci toho se snaží vyhledat metadata pro všechny tabulky, o kterých hibernace ví, a pro jednu z nich získat nejednoznačnou odpověď, protože dotaz na metadata vrací více než jeden řádek tabulky nebo metadata zobrazení.
V mém případě to bylo způsobeno naší konvencí pojmenování tabulek. Měli jsme stůl nazvaný (řekněme) "AAA_BBB", u kterého se to nepovedlo. Nyní je použití podtržítka v názvu tabulky, pokud vím, naprosto přijatelné a je zcela běžnou praxí. Nicméně podtržítko je také zástupný znak SQL pro jeden znak; když hledám v kódu metadata databáze, vidím, že to dělá "WHERE table_name LIKE ..." v metodě DatabaseMetaData.getTables(...), kterou zde používá hibernace.
Nyní jsem ve svém schématu měl také druhou tabulku nazvanou „AAA1BBB“, a proto obě odpovídaly vyhledávání metadat, a tak vrátil řádek metadat pro každou z těchto tabulek. Metoda hibernace je napsána tak, aby právě spadla, pokud sada výsledků z vyhledávání metadat tabulky vrátí více než jeden řádek. Hádám, že by měl prozkoumat dostupné řádky a zjistit, zda existuje nějaký, který se přesně shoduje se zadaným názvem tabulky.
Testoval jsem to pro Oracle i MySQL se stejným výsledkem.