Hibernate用作jpa提供程序。休眠自動類型轉換
我有long
ID實體:
@Id
@Column
private Long id;
但有時可以用int
ID查詢:
int id = ...
entityManager.find(MyEntity.class, id)
而且在這種情況下,實體未發現因堅持和要求id類型差異。
我可以在傳遞給實體管理器之前手動轉換此id
,但可以在內部執行這種轉換嗎?
Hibernate用作jpa提供程序。休眠自動類型轉換
我有long
ID實體:
@Id
@Column
private Long id;
但有時可以用int
ID查詢:
int id = ...
entityManager.find(MyEntity.class, id)
而且在這種情況下,實體未發現因堅持和要求id類型差異。
我可以在傳遞給實體管理器之前手動轉換此id
,但可以在內部執行這種轉換嗎?
根據我所知,Hibernate中沒有這樣的內置機制。在提供輸入,例如時間,
query.setParameter("abc", 5);
將被視爲僅int
。如果你想要把它作爲long
那麼你必須像
query.setParameter("abc", 5L);
指定它。如果你傳遞任何變量保持值,那麼你必須確保你這個變量轉換成long
,然後再傳遞作爲參數。
除此之外,您還可以使用
query.setLong("abc", 5L);
這將始終確保價值傳遞中,只有long
。
你可以嘗試以下方法:
int z = 10;
long w = z;
System.err.println ("Value:" + w);
Long id = w;
System.err.println ("Value:" + id);
entityManager.find (MyEntity.class, id);