Существует класс Hibernate XML Type, и мне нужно сохранить его в postgresql с помощью hibernate @type custom. Класс https://wiki.postgresql.org/wiki/Hibernate_XML_Type
но во время сохранения кажется, что я не присвоил значение.
Я думаю, это потому, что в моем классе конфигурации я не добавил это свойство @type в мою конфигурацию, Any Idea
@Getter
@Сеттер
@Сущность
@Table (name = "doc_sri")
Публичный класс Билл {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "cod_doc")
private int idBill;
@Column(name = "key_doc")
private String keyBill;
@Column(name = "date_doc")
private String dateIssueBill;
@Type(type = "com.rolandopalermo.facturacion.ec.entity.SQLXMLType")
@Column(name = "xml_doc" )
private String xmlBill;
@Column(name = "status_doc")
private int statusBill;
@Column(name = "type_doc")
private String typeBill;
public Bill( String keyBill, String dateIssueBill, String xmlBill, int statusBill, String typeBill) {
super();
this.keyBill = keyBill;
this.dateIssueBill = dateIssueBill;
this.xmlBill = xmlBill;
this.statusBill = statusBill;
this.typeBill = typeBill;
}
}
Следующий класс
@Configuration
@ComponentScan({ "com.rolandopalermo.facturacion.ec" })
@PropertySource("classpath:application.properties")
public class WebAppConfig {
private static final String PROPERTY_NAME_DATABASE_DRIVER = "org.postgresql.Driver";
private static final String PROPERTY_NAME_DATABASE_PASSWORD = "admin";
private static final String PROPERTY_NAME_DATABASE_URL = "jdbc:postgresql://localhost:5433/sri_data_base";
private static final String PROPERTY_NAME_DATABASE_USERNAME = "postgres";
private static final String PROPERTY_NAME_HIBERNATE_DIALECT = "org.hibernate.dialect.PostgreSQLDialect";
private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL = "true";
private static final String PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN = "com.rolandopalermo.facturacion.ec.entity";
private static final String PROPERTY_NAME_ENTITYMANAGER_PACKAGES_MAPPING = "com.rolandopalermo.facturacion.ec.entity.SQLXMLType";
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = null;
try {
dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(PROPERTY_NAME_DATABASE_DRIVER);
dataSource.setUrl(PROPERTY_NAME_DATABASE_URL);
dataSource.setUsername(PROPERTY_NAME_DATABASE_USERNAME);
dataSource.setPassword(PROPERTY_NAME_DATABASE_PASSWORD);
} catch (Exception e) {
// TODO: handle exception
}
return dataSource;
}
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactoryBean = null;
try {
sessionFactoryBean = new LocalSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource());
sessionFactoryBean.setPackagesToScan(PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN);
sessionFactoryBean.setHibernateProperties(hibProperties());
} catch (Exception e) {
// TODO: handle exception
}
return sessionFactoryBean;
}
private Properties hibProperties() {
Properties properties = null;
try {
properties = new Properties();
properties.put(PROPERTY_NAME_HIBERNATE_DIALECT, PROPERTY_NAME_HIBERNATE_DIALECT);
properties.put(PROPERTY_NAME_HIBERNATE_SHOW_SQL, PROPERTY_NAME_HIBERNATE_SHOW_SQL);
properties.put("xml", PROPERTY_NAME_ENTITYMANAGER_PACKAGES_MAPPING);
} catch (Exception e) {
// TODO: handle exception
}
return properties;
}
@Bean
public HibernateTransactionManager transactionManager() {
HibernateTransactionManager transactionManager = new HibernateTransactionManager();
transactionManager.setSessionFactory(sessionFactory().getObject());
return transactionManager;
}
@Bean
public UrlBasedViewResolver setupViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/WEB-INF/pages/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
}
Но когда я пытаюсь сохранить, он выполняет следующую ошибку
org.postgresql.util.PSQLException: No se ha especificado un valor para el parámetro 5.