2012-10-18 13 views
5

Każdy dostawca JPA (przynajmniej hibernacja, eclipselink i openjpa) daje możliwość utworzenia schematu ddl na podstawie klas jednostek jpa. Ale każdy system zarządzania bazami danych ma swoje własne typy danych.jpa mapowanie typu java na typ bazy danych

W jaki sposób jpa-provider decyduje, który typ danych sql zostanie wybrany. (Myślę, że będzie to zależne od dostawcy). Czy istnieje mapowanie takie jak String->varchar(xx), boolean->tinyint i tak dalej. Ale to mapowanie musi istnieć dla każdej bazy danych, prawda? Czy ktoś może mnie postawić we właściwym kierunku? Przeszukałem kod źródłowy hibernacji, ale nie znalazłem odpowiednich fragmentów kodu.

Dzięki!

+2

Sprawdź kod źródłowy klasy MySQLDialect dla hibernacji – Reddy

Odpowiedz

1

to mapowanie musi istnieć dla każdej bazy danych, prawda?

Masz rację. To samo jest określone w dialekcie, który jest używany w połączeniach DB.

W przypadku przeszukania tej informacji informacje są zawarte wewnątrz sterownika dialekt dla używanego DB, a to samo musi zawierać mapowanie java types -> db types.

Here możesz zobaczyć mapowanie w Konstruktor.

0

Zobacz klasę Dialect i jej implementacje.

zdrowie,

0

Dla każdego DBMS hibernacji utrzymuje odmianie języka. który jest dostępny w hibernateX.jar.

Powiązane problemy