我經常使用java.lang.Integer作爲主鍵。在這裏你可以看到一些代碼片段如何設置@Column註解使用的精度屬性?
@Entity
private class Person {
private Integer id;
@Id
@Column(precision=8, nullable=false)
public Integer getId() {
}
}
我需要設置其精度屬性值等於8。但是,在導出模式(Oracle)時,它無法按預期工作。
AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration
.addAnnotatedClass(Person.class)
.setProperty(Environment.DIALECT, "org.hibernate.dialect.OracleDialect")
.setProperty(Environment.DRIVER, "oracle.jdbc.driver.OracleDriver");
SchemaExport schema = new SchemaExport(configuration);
schema.setOutputFile("schema.sql");
schema.create(true, false);
schema.sql文件輸出
create table Person (id number(10,0) not null)
始終我得到10。是否有一些解決方法來獲得8而不是10?
有趣的(+1),但如果我有一個BigInteger,其精度大於10,它的工作原理。我不明白爲什麼 – 2010-05-26 21:45:03
不是真的令人驚訝的IMO。 Hibernate不會讓「按照你的意思工作」,即使它不是嚴格合法的,也不是JPA1規範定義的。 – Affe 2010-05-26 21:49:06