急!求助!Hibernate中遇到Could not synchronize database state with session问题

wqsh_gold 2009-07-20 07:51:17
我的bean 是:

====================================bean(Managers)=================================


public class Managers implements java.io.Serializable {

// Fields

private Long id;
private Users users;
private String managerName;
private String password;
private Long isValid;
private Long managerType;
private Long buildTime;
private Long modifyTime;
private long[] ints;

// Constructors

public long[] getInts() {
return ints;
}

public void setInts(long[] ints) {
this.ints = ints;
}

/** default constructor */
public Managers() {
}

/** full constructor */
public Managers(Users users, String managerName, String password,
Long isValid, Long managerType, Long buildTime, Long modifyTime) {
this.users = users;
this.managerName = managerName;
this.password = password;
this.isValid = isValid;
this.managerType = managerType;
this.buildTime = buildTime;
this.modifyTime = modifyTime;
}

// Property accessors

public Long getId() {
return this.id;
}

public void setId(Long id) {
this.id = id;
}

public Users getUsers() {
return this.users;
}

public void setUsers(Users users) {
this.users = users;
}

public String getManagerName() {
return this.managerName;
}

public void setManagerName(String managerName) {
this.managerName = managerName;
}

public String getPassword() {
return this.password;
}

public void setPassword(String password) {
this.password = password;
}

public Long getIsValid() {
return this.isValid;
}

public void setIsValid(Long isValid) {
this.isValid = isValid;
}

public Long getManagerType() {
return this.managerType;
}

public void setManagerType(Long managerType) {
this.managerType = managerType;
}

public Long getBuildTime() {
return this.buildTime;
}

public void setBuildTime(Long buildTime) {
this.buildTime = buildTime;
}

public Long getModifyTime() {
return this.modifyTime;
}

public void setModifyTime(Long modifyTime) {
this.modifyTime = modifyTime;
}

=====================================Managers.hbm.xml================================


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.company.fund.bean.Managers" table="MANAGERS" schema="FUNDMANAGER">
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">MANAGERS_SQ</param>
</generator>
</id>
<many-to-one name="users" class="com.company.fund.bean.Users"
fetch="select">
<column name="OWNER_ID" precision="22" scale="0" />
</many-to-one>
<property name="managerName" type="java.lang.String">
<column name="MANAGER_NAME" length="20" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="20" />
</property>
<property name="isValid" type="java.lang.Long">
<column name="IS_VALID" precision="1" scale="0" />
</property>
<property name="managerType" type="java.lang.Long">
<column name="MANAGER_TYPE" precision="1" scale="0" />
</property>
<property name="buildTime" type="java.lang.Long">
<column name="BUILD_TIME" precision="22" scale="0" />
</property>
<property name="modifyTime" type="java.lang.Long">
<column name="MODIFY_TIME" precision="22" scale="0" />
</property>
</class>
</hibernate-mapping>

=====================================jsp页面(struts2)==================================================

<s:form action="addManagerAction.action" namespace="/admin_user"
id="addManagerForm">
<s:property value="%{getText('id')}"/>
用户名:<s:textfield name="managers.managerName"></s:textfield>
<br>
密码:<s:password name="managers.password"></s:password>
<br>
<s:hidden name="managers.isValid" value="0"></s:hidden>
<s:submit value="注册" />
</s:form>

==================================提交后能够到达dao 但是到了dao 报错======================

public boolean saveManager(Managers manager) {
// TODO Auto-generated method stub
try {
this.getHibernateTemplate().save(manager);
getHibernateTemplate().flush();
System.out.println("插入manager 成功!");
} catch (DataAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("插入manager 失败!"+manager.getManagerName()+"+++++"+manager.getPassword());
return false;
}
return true;
}


===============================报错信息=========================================


Hibernate: select MANAGERS_SQ.nextval from dual
Hibernate: insert into FUNDMANAGER.MANAGERS (OWNER_ID, MANAGER_NAME, PASSWORD, IS_VALID, MANAGER_TYPE, BUILD_TIME, MODIFY_TIME, ID) values (?, ?, ?, ?, ?, ?, ?, ?)
2009-07-20 07:17:31,437 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 942, SQLState: 42000
2009-07-20 07:17:31,437 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00942: 表或视图不存在

2009-07-20 07:17:31,437 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 942, SQLState: 42000
2009-07-20 07:17:31,437 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00942: 表或视图不存在

2009-07-20 07:17:31,562 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update




=========================问题贴===========================

我的程序到了dao层在执行的时候,就报Could not synchronize database state with session错

请各位大侠帮助!
...全文
2854 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
peipeihequnqun 2010-04-21
  • 打赏
  • 举报
回复
10楼正解!!!
漫步知海 2010-03-18
  • 打赏
  • 举报
回复
原因可能是自己在数据库里手工添加了数据,当利用程序添加数据时,主键冲突导致报此错
wuyaowen2000 2010-03-15
  • 打赏
  • 举报
回复
我也遇到类似问题了,楼主问题解决了没呀,答案共享出来哦记得
getHibernateTemplate().save(entity);
SQL Error: 0, SQLState: null
failed batch
Could not synchronize database state with session
Could not execute JDBC batch update
mebitten 2009-12-08
  • 打赏
  • 举报
回复
把映射文件中的schema="FUNDMANAGER"去掉 试下呢?
g1092407 2009-08-13
  • 打赏
  • 举报
回复
schema="FUNDMANAGER" 没用过 达人 帮忙解释下 谢谢
weizj593 2009-08-13
  • 打赏
  • 举报
回复
查看一下 对像的主键Id是否正确.
wqsh_gold 2009-07-21
  • 打赏
  • 举报
回复
谢谢各位!
很高兴认识你们!
wqsh_gold 2009-07-21
  • 打赏
  • 举报
回复
现在的关键只,不能够进库
总是提示:

Hibernate: select MANAGERS_SQ.nextval from dual
Hibernate: insert into FUNDMANAGER.MANAGERS (OWNER_ID, MANAGER_NAME, PASSWORD, IS_VALID, MANAGER_TYPE, BUILD_TIME, MODIFY_TIME, ID) values (?, ?, ?, ?, ?, ?, ?, ?)
2009-07-21 06:47:53,937 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 942, SQLState: 42000
2009-07-21 06:47:53,937 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00942: 表或视图不存在

2009-07-21 06:47:53,937 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 942, SQLState: 42000
2009-07-21 06:47:53,937 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00942: 表或视图不存在

2009-07-21 06:47:53,984 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update

hql 语句也没有错
表或视图不存在
真不知道如何了?
tobeno2 2009-07-20
  • 打赏
  • 举报
回复
检查HQL语句。
archko 2009-07-20
  • 打赏
  • 举报
回复
2009-07-20 07:17:31,437 WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 942, SQLState: 42000
2009-07-20 07:17:31,437 ERROR [org.hibernate.util.JDBCExceptionReporter] - ORA-00942: 表或视图不存在
这就是主要问题,可是为什么它不认得表呢?
wqsh_gold 2009-07-20
  • 打赏
  • 举报
回复
大家帮忙想想办法?
谢谢各位!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧