hibernate数据插入新记录的问题

FundsAccount持久化类:
private Integer fundsAccountId;
......
private Set upFundsAccountLogses = new HashSet(0);
UpFundsAccountLogses 持久化类:
private Integer id;
......
private FundsAccount fundsAccount;

addAccount方法中:我在向数据库插入一个新的记录时(同时也把fundsAccount的一个列(prise列)做了改变):
String statu=null;
String fundType=FundAccountAdminDao.queryType(numberedAccount);
if(fundType.equals("正常"))
{
Session session=HibernateSessionFactory.getSession();
Transaction tr=null;
try {
Query q=session.createQuery("from FundsAccount where numberedAccount='"+numberedAccount+"'");
FundsAccount fundsAccount=(FundsAccount)q.uniqueResult();
double fundPrise=fundsAccount.getAmountOfMoney();
fundPrise=fundPrise+prise;
fundsAccount.setAmountOfMoney(fundPrise);
UpFundsAccountLogs upFundsAccountLogs=new UpFundsAccountLogs();
System.out.println(upFundsAccountLogs.getId());
upFundsAccountLogs.setOperators(operator);
upFundsAccountLogs.setFundsAccount(fundsAccount);
upFundsAccountLogs.setUpdateTime(new Date());
tr=session.beginTransaction();
fundsAccount.getUpFundsAccountLogses().add(upFundsAccountLogs);
session.save(fundsAccount);
//session.save(upFundsAccountLogs);
tr.commit();
statu="追加资金成功!";
表FundsAccount中的AmountOfMoney字段修改成功,但UpFundsAccountLogses表没有插入新记录.

又写了一个方法,但测向表UpFundsAccountLogses中插入数据:
public void upFundsLogs(String numberedAccount,Operators operator){
 Session session=HibernateSessionFactory.getSession();
 Query q=session.createQuery("from FundsAccount where numberedAccount='"+numberedAccount+"'");
 FundsAccount fundsAccount=(FundsAccount)q.uniqueResult();
 UpFundsAccountLogs upFundsAccountLogs=new UpFundsAccountLogs();
 System.out.println(upFundsAccountLogs.getId());
 upFundsAccountLogs.setOperators(operator);
 upFundsAccountLogs.setFundsAccount(fundsAccount);
 upFundsAccountLogs.setUpdateTime(new Date());
 session.persist(upFundsAccountLogs);  
 }
测试出错:
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not fetch initial value for increment generator
 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
 at org.hibernate.id.IncrementGenerator.getNext(IncrementGenerator.java:107)
 at org.hibernate.id.IncrementGenerator.generate(IncrementGenerator.java:44)
 at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:91)
 at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
 at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
 at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
 at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:613)
 at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:587)
 at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:591)
 at com.dao.fundAccountAdmin.FundAccountAdminDao.upFundsLogs(FundAccountAdminDao.java:317)
 at com.dao.fundAccountAdmin.FundAccountAdminDao.main(FundAccountAdminDao.java:334)
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'upFundsAccountLogs' 无效。
 at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
 at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
 at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
 at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
 at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
 at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
 at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
 at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
 at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
 at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
 at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
 at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
 at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
 at org.hibernate.id.IncrementGenerator.getNext(IncrementGenerator.java:85)
 ... 10 more
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值