问题1:Bean property 'userDAO' is not writable or has an invalid setter method.
解决:额。。。脑袋不够用。一开始竟然没有配置事务代理,导致找不到DAO,后来补充之:
<bean id="UserDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="userdao" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
但是最后发现的错误貌似不是这里,想起来再补充。。。
不过总的来说,能出现这种报错,那一定是setter有问题,或者是spring的配置有问题,一定要注意Dao名称、Bean名称、Property名称、类属性的一致性问题,大部分这种错误都是由这些名称匹配不对导致的
问题2:***.hbm.xml的事件类型与java中时间类型对应问题
解决:参见下面:
Hibernate映射类型、对应的Java时间和日期类型及对应的标准SQL类型
映 射 类 型 | Java类型 | 标准SQL类型 | 描 述 |
date | java.util.Date或者java.sql.Date | DATE | 代表日期,形式为: YYYY-MM-DD |
time | java.util.Date或者java.sql.Time | TIME | 代表时间,形式为: HH:MM:SS |
timestamp | java.util.Date或者java.sql. Timestamp | TIMESTAMP | 代表时间和日期,形式为: YYYYMMDDHHMMSS |
calendar | java.util.Calendar | TIMESTAMP | 同上 |
calendar_date | java.util.Calendar | DATE | 代表日期,形式为: YYYY-MM-DD |
最好还是使用 calendar比较靠谱!