做以下
// Notice without @Lob
@Column(length=4000)
private String getIntroText() {
return this.introText;
}
在劇本後,我看到
IntroText TEXT
因此預期這是行不通的。所以我的建議是:使用columnDefinition屬性,而不是
它允許您定義確切的DDL用於定義列類型
@Lob
@Column(columnDefinition="TEXT (4000)")
private String getIntroText() {
return this.introText;
}
現在它工作正常!你可以測試你是否想要
AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration
.addAnnotatedClass(<YOUR_ENTITY_GOES_HERE>.class)
.setProperty(Environment.HBM2DDL_AUTO, "create")
.setProperty(Environment.USER, "<USER_GOES_HERE>")
.setProperty(Environment.PASS, "<USER_PASS_GOES_HERE>")
.setProperty(Environment.SHOW_SQL, "true")
.setProperty(Environment.FORMAT_SQL, "true")
// Set up your dialect according to the Target MySQL
.setProperty(Environment.DIALECT, "org.hibernate.dialect.MySQLDialect")
.setProperty(Environment.DRIVER, "com.mysql.jdbc.Driver")
.setProperty(Environment.URL, "jdbc:mysql://127.0.0.1:3306/<YOUR_SCHEMA_GOES_HERE>");
SchemaExport schema = new SchemaExport(configuration);
schema.setOutputFile("schema.sql");
schema.create(true, true);
只是一個建議:如果可能的話,把註釋配置放在getter方法而不是成員字段。 Hibernate使用代理來完成你的工作。在getter方法中使用註釋配置時,它工作正常。
問候,
「只是一個建議:如果可能的話,把註釋配置getter方法,而不是成員領域Hibernate使用代理服務器做你的工作,它的getter方法使用註釋配置時工作得很好。」是什麼伎倆。我在屬性上有註釋,而不是吸氣劑。 謝謝! – lupefiasco 2010-02-02 23:46:26