您的位置:程序门 -> java -> 框架、开源



javax.ejb.ejbexception: transaction aborted; nested exception is: javax.transaction.rollbackexception: transaction marked for ro


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


javax.ejb.ejbexception: transaction aborted; nested exception is: javax.transaction.rollbackexception: transaction marked for ro
发表于:2008-01-03 22:25:32 楼主
小弟在学   ejb3.0   的时候
对实体类存储的时候   出现了现面的错误   不知道那位大哥能帮帮我   急!!
caused   by:   javax.ejb.ejbexception:   transaction   aborted;   nested   exception   is:   javax.transaction.rollbackexception:   transaction   marked   for   rollback.
                at   com.sun.ejb.containers.basecontainer.completenewtx(basecontainer.java:3798)
                at   com.sun.ejb.containers.basecontainer.postinvoketx(basecontainer.java:3571)
                at   com.sun.ejb.containers.basecontainer.postinvoke(basecontainer.java:1354)
                at   com.sun.ejb.containers.basecontainer.postinvoke(basecontainer.java:1316)
                at   com.sun.ejb.containers.ejblocalobjectinvocationhandler.invoke(ejblocalobjectinvocationhandler.java:205)
                at   com.sun.ejb.containers.ejblocalobjectinvocationhandlerdelegate.invoke(ejblocalobjectinvocationhandlerdelegate.java:127)
                at   $proxy94.create(unknown   source)
                at   crm.web.addcompany.button1_action(addcompany.java:225)
                at   sun.reflect.nativemethodaccessorimpl.invoke0(native   method)

发表于:2008-01-04 05:43:461楼 得分:0
错误信息不全。

应该有数据库操作的异常报出来才对。

一般是,
1   没有给非空的字段赋值
2   外键不存在
3   数据/字符串超过范围
发表于:2008-01-04 10:22:262楼 得分:0
谢谢     java2000_net  
我用的是sql2000   作为数据库,我做的数据更新,编辑都成功,就是插入数据不可以
我已经检查过了,确定已经给非空字段赋值,外键也确定没问题,数据范围也对。
会不会是因为有个字段   是自动加一   所以出问题呢?
拜托各位,小弟万分感激。。
发表于:2008-01-04 10:24:303楼 得分:0

实体类@entity
@table(name   =   "companys")
@namedqueries     .....   太长发帖时候   我删除这个部分
public   class   companys   implements   serializable   {
        private   static   final   long   serialversionuid   =   1l;
        @id
        @column(name   =   "company_id",   nullable   =   false)
        private   integer   companyid;
        @column(name   =   "primary_contact_id")
        private   integer   primarycontactid;
        @column(name   =   "company_code")
        private   string   companycode;
        @column(name   =   "create_date")
        @temporal(temporaltype.timestamp)
        private   date   createdate;
        @column(name   =   "edit_date")
        @temporal(temporaltype.timestamp)
        private   date   editdate;
        @column(name   =   "merge_date")
        @temporal(temporaltype.timestamp)
        private   date   mergedate;
        @column(name   =   "last_call")
        @temporal(temporaltype.timestamp)
        private   date   lastcall;
        @column(name   =   "last_buy")
        @temporal(temporaltype.timestamp)
        private   date   lastbuy;
        @column(name   =   "last_meet")
        @temporal(temporaltype.timestamp)
        private   date   lastmeet;
        @column(name   =   "company_name",   nullable   =   false)
        private   string   companyname;
        @column(name   =   "py_code")
        private   string   pycode;
        @column(name   =   "employees")
        private   integer   employees;
        @column(name   =   "revenue")
        private   bigdecimal   revenue;
        @column(name   =   "stock_symbol")
        private   string   stocksymbol;
        @column(name   =   "country_id")
        private   integer   countryid;
        @column(name   =   "province_id")
        private   integer   provinceid;
        @column(name   =   "city_id")
        private   integer   cityid;
        @column(name   =   "zip")
        private   string   zip;
        @column(name   =   "address")
        private   string   address;
        @column(name   =   "url")
        private   string   url;
        @column(name   =   "client_type_id")
        private   integer   clienttypeid;
        @column(name   =   "client_source_id")
        private   integer   clientsourceid;
        @column(name   =   "client_status_id")
        private   integer   clientstatusid;
        @column(name   =   "industry_id")
        private   integer   industryid;
        @column(name   =   "phone1")
        private   string   phone1;
        @column(name   =   "phone2")
        private   string   phone2;
        @column(name   =   "phone3")
        private   string   phone3;
        @column(name   =   "email1")
        private   string   email1;
        @column(name   =   "fax1")
        private   string   fax1;
        @column(name   =   "fax2")
        private   string   fax2;
        @column(name   =   "user1")
        private   string   user1;
        @column(name   =   "user2")
        private   string   user2;
        @column(name   =   "user3")
        private   string   user3;
        @column(name   =   "user4")
        private   string   user4;
        @column(name   =   "user5")
        private   string   user5;
        @column(name   =   "dict1_id")
        private   integer   dict1id;
        @column(name   =   "dict2_id")
        private   integer   dict2id;
        @column(name   =   "dict3_id")
        private   integer   dict3id;
        @column(name   =   "dict4_id")
        private   integer   dict4id;
        @column(name   =   "dict5_id")
        private   integer   dict5id;
        @lob
        @column(name   =   "note")
        private   string   note;
        @column(name   =   "tax_name")
        private   string   taxname;
        @column(name   =   "tax_number")
        private   string   taxnumber;
        @column(name   =   "tax_bank_account")
        private   string   taxbankaccount;
        @column(name   =   "tax_bank")
        private   string   taxbank;
        @column(name   =   "tax_address")
        private   string   taxaddress;
        @column(name   =   "tax_phone")
        private   string   taxphone;
        @column(name   =   "bank")
        private   string   bank;
        @column(name   =   "bank_account")
        private   string   bankaccount;
        @column(name   =   "sms_count_item")
        private   integer   smscountitem;
        @column(name   =   "sms_count_money")
        private   integer   smscountmoney;
        @column(name   =   "buy_money")
        private   integer   buymoney;
        @column(name   =   "creator")
        private   string   creator;
        @column(name   =   "last_operator")
        private   string   lastoperator;
        @column(name   =   "deptname")
        private   string   deptname;
        @column(name   =   "ispublic")
        private   boolean   ispublic;
        @column(name   =   "reserved1")
        private   string   reserved1;
        @column(name   =   "reserved2")
        private   string   reserved2;
        @column(name   =   "reserved3")
        private   string   reserved3;
        @column(name   =   "reserved4")
        private   string   reserved4;
        @column(name   =   "reserved5")
        private   string   reserved5;
        @column(name   =   "account_balance")
        private   bigdecimal   accountbalance;
        @column(name   =   "total_integral")
        private   bigdecimal   totalintegral;
        @column(name   =   "client_grade_id")
        private   integer   clientgradeid;
        @column(name   =   "update_date")
        @temporal(temporaltype.timestamp)
        private   date   updatedate;
        @column(name   =   "next_touch")
        @temporal(temporaltype.timestamp)
        private   date   nexttouch;
        @column(name   =   "touch_period")
        private   integer   touchperiod;
        @column(name   =   "view_popedom_id")
        private   string   viewpopedomid;
        @column(name   =   "flag_public")
        private   character   flagpublic;
        @column(name   =   "flag_check")
        private   integer   flagcheck;
        @joincolumn(name   =   "operator",   referencedcolumnname   =   "operator")
        @manytoone
        private   employee   operator;

        public   companys()   {
        }

        public   companys(integer   companyid)   {
                this.companyid   =   companyid;
        }

        public   companys(integer   companyid,   string   companyname)   {
                this.companyid   =   companyid;
                this.companyname   =   companyname;
        }

      .....太长发帖时候   我删除这个部分   都是写get和set方法

        }

发表于:2008-01-04 10:25:264楼 得分:0
接口
@stateless
@transactionmanagement(value=transactionmanagementtype.container)
public   class   companysfacade   implements   companysfacadelocal   {
        @persistencecontext
        private   entitymanager   em;

        public   void   create(companys   companys)   {
//                 em.
//                 em.createquery("insert   into   companys(company_name)   values('3333333')").EXECuteupdate();
                em.gettransaction().begin();
                em.persist(companys);
                em.gettransaction().commit();
        }

        public   void   edit(companys   companys)   {
                em.gettransaction().begin();
                em.merge(companys);
                em.gettransaction().commit();
        }

        public   void   remove(companys   companys)   {
                em.gettransaction().begin();
                em.remove(em.merge(companys));
                em.gettransaction().commit();
        }

        public   companys   find(object   id)   {
                return   em.find(crm.entities.companys.class,   id);
        }

        public   list <companys>   findall()   {
                return   em.createquery("select   object(o)   from   companys   as   o").getresultlist();
        }

}
操作1
  public   string   button1_action()   {
                companys   companys   =   new   companys();
                companys.setcompanyid(99);
                companys.setcompanyname("33333");
                companysfacade.create(companys);
              return   null;
        }
操作2
  public   string   button1_action()   {
                companys   companys   =   new   companys();
                companys.setcompanyid(99);
                companys.setcompanyname("33333");
                companysfacade.create(companys);
              return   null;
        }
操作1和操作2   得到的记过都是错误的


快速检索

最新资讯
热门点击