«Как исправить Save Save XML с помощью hibernate и spring - PullRequest
0 голосов
/ 02 января 2019

Существует класс 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...