Org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL не разрешен для столбца «STOCK». ОшибкаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: NULL не разрешен для столбца «STOCK». Ошибка

Сообщение Anonymous »


Я получаю подобную ошибку, но у меня нет столбца с названием «Акции».

Это ошибка.

java.lang.IllegalStateException: не удалось выполнить CommandLineRunner в org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:774) ~[spring-boot-3.1.1.jar:3.1.1] в org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:755) ~[spring-boot-3.1.1.jar:3.1.1] в org.springframework.boot.SpringApplication.run(SpringApplication.java:319) ~[spring-boot-3.1.1.jar:3.1.1] в org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-3.1.1.jar:3.1.1] в org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-3.1.1.jar:3.1.1] в com.hilmi.AutomotiveECommerceApplication.main(AutomotiveECommerceApplication.java:20) ~[classes/:na] в java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] в java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na] в org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.1.1.jar:3.1.1] Вызвано: org.springframework.dao.DataIntegrityViolationException: не удалось выполнить оператор [NULL не разрешен для столбца «STOCK»; SQL-заявление: вставить в товары (brand_id,category_id,created_date,description,name,price,quantity,updated_date,id) значения (?,?,?,?,?,?,?,?,default) [23502-214]] [insert в продукты (brand_id,category_id,created_date,description,name,price,quantity,updated_date,id) значения (?,?,?,?,?,?,?,?,default)]; SQL [вставить в продукты (brand_id,category_id,created_date,description,name,price,quantity,updated_date,id) значения (?,?,?,?,?,?,?,?,default)]; ограничение [ноль] в org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:269) ~[spring-orm-6.0.10.jar:6.0.10] в org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229) ~[spring-orm-6.0.10.jar:6.0.10] в org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) ~[spring-orm-6.0.10.jar:6.0.10] в org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-6.0.10.jar:6.0.10] в org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-6.0.10.jar:6.0.10] в org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-6.0.10.jar:6.0.10] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[spring-aop-6.0.10.jar:6.0.10] в org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulationMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:164) ~[spring-data-jpa-3.1.1.jar:3.1.1] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[spring-aop-6.0.10.jar:6.0.10] в org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocateInterceptor.java:97) ~[spring-aop-6.0.10.jar:6.0.10] в org.springframework.aop.framework.ReflectiveMethodInvocate.proceed(ReflectiveMethodInvocate.java:184) ~[spring-aop-6.0.10.jar:6.0.10] в org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244) ~[spring-aop-6.0.10.jar:6.0.10] по адресу jdk.proxy4/jdk.proxy4.$Proxy153.saveAll(неизвестный источник) ~[na:na] на com.hilmi.bootstrap.BootstrapData.run(BootstrapData.java:83) ~[classes/:na] в org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:771) ~[spring-boot-3.1.1.jar:3.1.1] Вы можете видеть, что в Product.java нет столбца «Акции». Продукт.java

@Entity @Table(name = "продукты") @Данные @EqualsAndHashCode (callSuper = false, onlyExplicitlyIncluded = true) @AllArgsConstructor @NoArgsConstructor Продукт публичного класса расширяет BaseEntity { @EqualsAndHashCode.Include @Column(name = "имя") частное имя строки; @Column(name = «описание») описание частной строки; @Column(name = "цена") частная цена BigDecimal; @Column(name = «количество») частное количество int; @OneToMany(mappedBy = "продукт", выборка = FetchType.LAZY) Set ShoppingCardItems; @OneToMany(mappedBy = "продукт", выборка = FetchType.LAZY) Список элементы заказа; @ManyToOne(выборка = FetchType.LAZY) @JoinColumn(name = "category_id") частная категория категории; @ManyToOne(выборка = FetchType.LAZY) @JoinColumn(name = "brand_id") частный бренд бренда; @OneToMany(mappedBy = "продукт", выборка = FetchType.LAZY) Список изображений ; } Bootstrap.java

@Component публичный класс BootstrapData реализует CommandLineRunner { частный окончательный CategoryRepository CategoryRepository; частный конечный ProductRepository productRepository; частный конечный CountryRepository CountryRepository; частный окончательный RoleRepository roleRepository; частный конечный BrandRepository BrandRepository; частный окончательный ImageRepository imageRepository; частный конечный CustomerRepository customerRepository; частный окончательный CityRepository cityRepository; частный окончательный DistrictRepository DistrictRepository; частный окончательный парольEncoderпарольEncoder; public BootstrapData (CategoryRepository категорияRepository, ProductRepository productRepository, CountryRepository CountryRepository, RoleRepository roleRepository, BrandRepository BrandRepository, ImageRepository imageRepository, CustomerRepository customerRepository, CityRepository cityRepository, РайонРепозиторий РайонРепозиторий, ПарольЭнкодер парольЭнкодер) { this.categoryRepository = категорияRepository; this.productRepository = ProductRepository; this.countryRepository = CountryRepository; this.roleRepository = roleRepository; this.brandRepository = BrandRepository; this.imageRepository = imageRepository; this.customerRepository = customerRepository; this.cityRepository = cityRepository; this.districtRepository = DistrictRepository; this.passwordEncoder = парольEncoder; } @Override public void run(String... args) выдает исключение { roleRepository.save(новая роль(0, ERole.ROLE_USER)); roleRepository.save(новая роль(0, ERole.ROLE_ADMIN)); ObjectMapper objectMapper = новый ObjectMapper(); Категории List = objectMapper.readValue(getClass().getResourceAsStream("/data/categories.json"), новый TypeReference() { }); List продукты = objectMapper.readValue(getClass().getResourceAsStream("/data/products.json"), новый TypeReference() { }); Список брендов
= objectMapper.readValue(getClass().getResourceAsStream("/data/brands.json"), новый TypeReference() { }); List images = objectMapper.readValue(getClass().getResourceAsStream("/data/images.json"), новый TypeReference() { }); Список стран = objectMapper.readValue(getClass().getResourceAsStream("/data/countries.json"), новый TypeReference() { }); List города = objectMapper.readValue(getClass().getResourceAsStream("/data/cities.json"), новый TypeReference() { }); List районы = objectMapper.readValue(getClass().getResourceAsStream("/data/districts.json"), новый TypeReference() { }); категорияRepository.saveAll(категории); BrandRepository.saveAll(бренды); ProductRepository.saveAll(продукты); imageRepository.saveAll(изображения); CountryRepository.saveAll(страны); cityRepository.saveAll(города); DistrictRepository.saveAll(районы); Роли List = new ArrayList(); roles.add(roleRepository.findByName(ERole.ROLE_ADMIN).get()); Клиент клиент = новый клиент(); customer.setFirstName("H"); customer.setLastName("B"); customer.setEmail("h@gmail.com"); customer.setUsername("hbas"); customer.setPassword(passwordEncoder.encode("123456")); customer.setEmailVerified(истина); клиент.setRoles(роли); customerRepository.save(клиент); List roles1 = новый ArrayList(); roles1.add(roleRepository.findByName(ERole.ROLE_USER).get()); Клиент клиент1 = новый Клиент(); customer1.setFirstName("Ах"); customer1.setLastName("Вт"); customer1.setEmail("ahtu@gmail.com"); customer1.setUsername("aTurk"); customer1.setPassword(passwordEncoder.encode("123456")); customer1.setEmailVerified(истина); клиент1.setRoles(роли1); customerRepository.save(customer1); } } @SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class}) общественный класс AutomotiveECommerceApplication { @PostConstruct общественная недействительная инициализация () { TimeZone.setDefault(TimeZone.getTimeZone("IST")); } public static void main(String[] args) { SpringApplication.run(AutomotiveECommerceApplication.class, args); } } Мои данные продукты.json

[ { "идентификатор": 1, "name": "Тормоз Bosch", "description": "Описание", «цена»: 799,99, «количество»: 20, "категория": { "идентификатор": 1, "name": "Двигатель" }, "бренд": { "идентификатор": 1, "имя": "Бош" } }, { «идентификатор»: 2, "name": "Топливный насос Bosch", "description": "Описание", «цена»: 150,00, «количество»: 30, "категория": { "идентификатор": 1, "name": "Двигатель" }, "бренд": { "идентификатор": 1, "имя": "Бош" } } ] Почему я получаю такую ​​ошибку, хотя у меня нет столбца с именем «Акции»?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»