Я запускаю свой spring
контейнер в режиме validate
AutoDDL = Validate
Я получаю исключение для проверки, как это
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-
validation: wrong column type encountered in column [amount] in table [Balance];
found [numeric (Types#NUMERIC)], but expecting [int8 (Types#BIGINT)]
и мой сценарий DDL выглядит так
CREATE TABLE Balance(stratr VARCHAR(25), histFromDate TIMESTAMP WITHOUT TIME
ZONE,amount numeric(11, 0))
и мой атрибут в сущности JPA выглядит следующим образом
@Column(name="amount", precision=11, scale=0) //have specified precision and scale
private Long amount ;
где я использовал import javax.persistence.Column
. Так как я аннотировал точную точность и масштаб, разве гибернация не должна проверяться с этой информацией, которую я предоставил через аннотацию столбца? Что я мог пропустить?
Я не могу сделать следующее
@Column(
columnDefinition = "NUMERIC(11,0)"
)
private Long amount;
потому что я не знаю хранилище данных этой сущности JPA.
Я также попытался сгенерировать скрипт по следующему свойству
<prop key="javax.persistence.schema-generation.scripts.action">drop-and-create</prop>
<prop key="javax.persistence.schema-generation.scripts.create-target">./l/create.sql</prop>
<prop key="javax.persistence.schema-generation.scripts.drop-target">./l/drop.sql</prop>
Это также генерируется как int8
, а не numeric(11,0)
. Что можно сделать, чтобы решить эту проблему?