所以,我意識到這是從休眠的正常使用情況下,但是......如何使用反射檢查hibernate映射?
我使用Java反射來填充通過Hibernate的堅持與註釋配置DTO類。 我需要自反地找到@ManyToOne關係mappedBy屬性,以便將反向鏈接從一個設置爲多個。
代碼:
class Router{
@OneToMany(targetEntity = Port.class, cascade = CascadeType.ALL, mapped = "router", fetch = FetchType.LAZY)
Collection<Port> ports;
}
class Port{
@JsonBackReferene
@ManyToOne(cascade = {CascadeType.ALL, fetch = FetchType.LAZY)
Router router;
}
本能(和遞歸),我從填充路由器啓動的DTO。當端口具有所有屬性設置(自動協商等)時,它將返回到路由器以添加到portList。 Port.router字段未設置,因爲我無法找到一種方式來反射地獲取@ OneToMany.mappedBy值,這會讓我知道Port中的哪個字段設置爲Router實例。
任何意見是非常感謝!
謝謝!
不回答你的問題,但你不認爲直接生成SQL不會更簡單嗎? – 2012-02-27 18:33:14