簡體   English   中英

類廣播異常休眠映射nvarchar

[英]Classcast exception hibernate mapping nvarchar

我正在嘗試使用DetachedCriteria從SQl服務器數據庫檢索數據庫詳細信息,如下所示。 nvarcharID是字符串類型

List<POJO> pojoObj = (List<POJO>) getHibernateTemplate().findByCriteria(DetachedCriteria.forClass(
            POJO.class).add(Restrictions.idEq(nvarcharID)));

在我的POJO中,我具有以下屬性

@Id
@GeneratedValue
@Column(name = "ID")
private double ID;

@Nationalized
@Column(name = "Column1")
private String string1;

@Nationalized
@Column(name = "column2")
private String string2;

column1和column 2均為SQL ServerDB中的nvarchar類型。 和上面在Criteria中使用的nvarcharID是DB中的另一個字段,在DB中的類型為nvarchar,我將其映射為String。 在填充POJO時,我不希望navarcharID字段成為POJO的一部分。

對於休眠,我的gradle文件中有以下依賴項

compile group: 'org.hibernate', name: 'hibernate-entitymanager', version: '4.3.11.Final'
compile group: 'javax.validation', name: 'validation-api', version: '1.0.0.GA'
compile group: 'org.hibernate', name: 'hibernate-validator-annotation-processor', version: '4.3.2.Final'
compile group: 'org.hibernate', name: 'hibernate-validator', version: '4.3.2.Final'
compile 'org.hibernate:hibernate-core:4.3.11.Final'

我的Spring依賴項是

 compile group: 'org.springframework', name: 'spring-orm', version:'4.1.6.RELEASE'
compile group: 'org.springframework', name: 'spring-webmvc', version: '4.1.6.RELEASE'
compile group: 'org.springframework.security', name: 'spring-security-web', version: '4.0.2.RELEASE'

我還在Hibernate配置文件中為Dialect和ddl操作設置以下屬性。

   @Bean
public LocalSessionFactoryBean sessionFactoryBean() {
    LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean();
    localSessionFactoryBean.setDataSource(dataSource);
    localSessionFactoryBean.setPackagesToScan(new String[] { "com.wk.cdi" });

    Properties properties = new Properties();
    properties.setProperty("hibernate.dialect", "org.hibernate.dialect.SQLServer2012Dialect");
    properties.setProperty("hibernate.use_nationalized_character_data", "true");
    properties.setProperty("hibernate.hbm2ddl.auto", "update");
    properties.setProperty("hibernate.format_sql", "true");
    properties.setProperty("hibernate.show_sql", "true");
    localSessionFactoryBean.setHibernateProperties(properties);
    return localSessionFactoryBean;
}

當我嘗試使用hibernateTemplate檢索數據時,我得到java.lang.ClassCastException:無法將java.lang.String強制轉換為java.lang.Double,並且在上面使用DetachedCriteria時拋出了錯誤

請忽略此內容,因為還有其他問題。 恰好是Restrcition.idEq需要由Restrictions.eq替換

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM