01:37:23,118 ERROR [BasicPropertyAccessor] IllegalArgumentException in class: com.sxdx.dsc.entity.Account, getter method of property: accid
这个类里面的accid字段有get方法吗?

解决方案 »

  1.   

    哈,这么早就有人回复了?谢谢。
    这是Account类的代码:
    /**
     * Account generated by hbm2java
     */public class Account  implements java.io.Serializable {
        // Fields         private String accid;
         private String accname;
        // Constructors    /** default constructor */
        public Account() {
        } /** minimal constructor */
        public Account(String accid) {
            this.accid = accid;
        }
        
        /** full constructor */
        public Account(String accid, String accname) {
            this.accid = accid;
            this.accname = accname;
        }
           
        // Property accessors    public String getAccid() {
            return this.accid;
        }
        
        public void setAccid(String accid) {
            this.accid = accid;
        }    public String getAccname() {
            return this.accname;
        }
        
        public void setAccname(String accname) {
            this.accname = accname;
        }}
      

  2.   

    在Account类里添加equals方法试试~
      

  3.   

    有没有equals方法的举例呀,不知道这个equals怎么写?
      

  4.   

    大哥,equals都不会写??工具可以自动生成啊~
      

  5.   

    在Account.java类中添加以下方法,仍旧报错(ps:hibernate tool可以自动生成下面两个方法么?):
    public boolean equals(Object o) {
         if (this == o) return true; 
         if (o == null || !(o instanceof Account)) 
         return false;
         Account other = (Account)o; 
         if (accid == other.getAccid()) return true; 
         if (accid == null) return false;
         return accid.equals(other.getAccid());
         }
        
        public int hashCode() {
         if (accid != null) { 
         return accid.hashCode(); 
         }
         else {
         return super.hashCode(); 
         }
        }
      

  6.   

    想排错的话,请重视两个地方:根据这个提示,可以看出Account的getter这里需要重视:01:37:23,118 ERROR [BasicPropertyAccessor] IllegalArgumentException in class: com.sxdx.dsc.entity.Account, getter method of property: accid
    01:37:23,119 ERROR [STDERR] org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of com.sxdx.dsc.entity.Account.accid根据下面的提示,可以看出在HibernateSavServlet.java的61行代码需要重视:
    at com.sxdx.dsc.test.HibernateSavServlet.doPost(HibernateSavServlet.java:61)
    我给楼主的建议:
    1.请重点检查你的POJO中主键字段的类型,以及测试时给这个字段赋的变量的值是否匹配。2.测试的话,有时候用Servlet的doPost()方法是会出问题的。这个我同事也遇到过。我把它的方法用在Struts的Action中,就一点问题都没有。3.看你使用的应该是hbm2java,再由POJO生成脚本这样的方式吧?我这样没试过,但是我用过正向开发的方式(先写出POJO,再xdoclet成hbm,再schemaexport出ddl),没有问题。
      

  7.   

    <generator class="assigned" />,就是说楼主打算自己指定主键值,可看你的程序并没有相应的操作,建议用class=“native”