我正在尝试使用Hibernate + Spring构建一个应用程序。 我创建了一个模式并保存为schema.sql:
第一张表:
` CREATE OR REPLACE TABLE `PayingMethods` (
`PaymentMethodsID` int(11) NOT NULL AUTO_INCREMENT,
`PaymentName` varchar(50) NOT NULL,
`CompleteTime` varchar(50) NOT NULL,
PRIMARY KEY (`PaymentMethodsID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ;
第二张表:
CREATE OR REPLACE TABLE `Payed` (
`PayedID` int(11) NOT NULL AUTO_INCREMENT,
`PaymentName` int(11) NOT NULL,
`Price` int(11) NOT NULL,
`Where` varchar(500) NOT NULL,
PRIMARY KEY (`PayedID`),
FOREIGN KEY (`PaymentName`) REFERENCES`
PayingMethods`(`PaymentMethodsID`) ON DELETE CASCADE)
ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
我可以在服务器上运行此脚本(在PhPmyadmin上),它会创建2表并正确设置引用。
我可以在服务器的第一次启动时运行此文件吗?现在我用:
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.hbm2ddl.import_files">/import.sql</property>
创建一个空数据库,然后将数据导入其中。这并不好,因为这并没有设置参考。
我的模型类:
PaymentMethods表模型:
`
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO) //for autonumber
private int PaymentMethodID;
@Column
private String PaymentName;
@Column
private String CompleteTime;`
付款表型号:
@Id
@Column
@GeneratedValue(strategy=GenerationType.AUTO) //for autonumber
private int PayedID;
@Column
private String PaymentName;
@Column
private String price;
@Column
private String where;
如何在第一次运行时导入schema.sql然后导入import.sql,或者如何在Hibernate模型下设置Reference?
提前致谢!