Java Hibernate找不到属性的setter(org.Hibernate.PropertyNotFoundException)
我试图在事务类Spring注释中获取SQL查询的结果:Java Hibernate找不到属性的setter(org.Hibernate.PropertyNotFoundException),java,spring,hibernate,Java,Spring,Hibernate,我试图在事务类Spring注释中获取SQL查询的结果: String query = "SELECT DAT, DROP_RADIO FROM My_TABLE"; SQLQuery q = getCurrentSession().createSQLQuery(query); q.setResultTransformer(Transformers.aliasToBean(CallDrop.class)); List result = q.list(); 和CallDrop: public c
String query = "SELECT DAT, DROP_RADIO FROM My_TABLE";
SQLQuery q = getCurrentSession().createSQLQuery(query);
q.setResultTransformer(Transformers.aliasToBean(CallDrop.class));
List result = q.list();
和CallDrop:
public class CallDrop implements java.io.Serializable {
private int id;
private Date dat;
private BigDecimal onRadio;
public BigDecimal getOnRadio() {
return onRadio;
}
public void setOnRadio(BigDecimal onRadio) {
this.onRadio = onRadio;
}
public Date getDat() {
return dat;
}
public void setDat(Date dat) {
this.dat = dat;
}
}
.hbm.xml是:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.company.beans.CallDrop" table="My_TABLE">
<id name="id" type="int" />
<property name="dat" type="date">
<column name="DAT" length="10" />
</property>
<property name="onRadio" type="big_decimal">
<column name="DROP_RADIO" precision="22" scale="0" />
</property>
</class>
</hibernate-mapping>
我确信我已将hbm.xml添加到会话工厂中的applicationContext文件中:
<bean id="sessionFactoryETL" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource"><ref local="dataSourceETL"/></property>
<property name="mappingResources">
<list>
<value>com/company/beans/CallDrop.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
所以,没有类型,但它不工作。有人知道问题出在哪里吗?
感谢更改查询以选择DAT作为\DAT\,从My_表中删除\u RADIO as\onRadio\更改查询以选择DAT作为\DAT\,从My_表中删除\u RADIO as\onRadio\您可以使用addScalarString columnAlias,键入Type来显式声明本机SQL的列别名:
getCurrentSession().createSQLQuery("select e.id AS id, e.first_name AS firstName, e.password AS password FROM table")
.addScalar("id", StandardBasicTypes.INTEGER )
.addScalar("firstName", StandardBasicTypes.STRING )
.addScalar("password", StandardBasicTypes.STRING )
.setResultTransformer(Transformers.aliasToBean(Employee.class))
.list();
可以使用addScalarString columnAlias,Type Type显式声明本机SQL的列别名:
getCurrentSession().createSQLQuery("select e.id AS id, e.first_name AS firstName, e.password AS password FROM table")
.addScalar("id", StandardBasicTypes.INTEGER )
.addScalar("firstName", StandardBasicTypes.STRING )
.addScalar("password", StandardBasicTypes.STRING )
.setResultTransformer(Transformers.aliasToBean(Employee.class))
.list();
您正在映射到kpi_network_bh并通过My_表进行查询。这是错误的吗?这只是发布question@DonRoby这是stackoverflow中的一个新特性:不,我被这个错误绊住了!你能公布确切的例外情况吗?哪个属性导致了异常?您正在映射到kpi_network_bh并通过My_表进行查询。这是错误的吗?发布question@DonRoby这是stackoverflow中的一个新特性:不,我被这个错误绊住了!你能公布确切的例外情况吗?哪个属性导致了异常?