2011-08-05 30 views
0

我有一个接口和三个实现该接口的类,我应该使用Hibernate框架将它们保存到数据库。问题是,它应该根据三个类中的一个创建不同的表。例如,如何使用Hibernate的Java接口?

interface Vehicle; 
class Truck; 
class Bus; 
class Motorbike; 

Vehicle vehicle = new Truck(); // In that case, Truck table should be generated 
session.save(vehicle); // In that case, Truck table should be generated 

Vehicle vehicle = new Bus(); 
session.save(vehicle); // In that case, Bus table should be generated 

Vehicle vehicle = new Motorbike(); 
session.save(vehicle); // In that case, Motorbike table should be generated 

我该怎么做注释?任何帮助将不胜感激。 谢谢。

+0

只要使用它,因为你使用任何其他类与休眠。这里似乎没有什么奇怪的。 –

回答

2

Hibernate在运行时检查你的类,所以不管你是按类还是通过接口引用你的对象。

请注意,当您拨打session.save()时,它不会创建表格。它将在已经存在的表格中插入记录。如果你想要通过休眠创建的表,寻找hibernate.hbm2ddl.auto

+1

我通过在抽象类的顶部添加“@MappedSuperclass”来解决它。谢谢。 – prgrmmr

+1

好的,你解决了我不了解你有什么问题。下次 - 在问题描述中包含确切的问题 – Bozho