Hibernate Reference Column到另一个表Column With Primary Key

时间:2016-08-12 22:08:30

标签: java mysql sql-server spring hibernate

我正在尝试使用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?

提前致谢!

0 个答案:

没有答案