Я часто использую 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, он работает. Я не понимаю, почему –
Неудивительно, что imo. Не будет единственным местом, где Hibernate делает что-то «работать так, как вы имели в виду», даже если оно не является строго законным или четко определено спецификацией JPA1. – Affe