mackers 2009-04-15 20:08
浏览 255
已采纳

hibernate问题

本人java 新手 现学习hibernate中,感觉非常迷糊,做项目遇到问题,一下午查资料都没解决掉。 上来求帮助 贴代码
Users 类
[code="java"]
public class Users implements Serializable {
/**
*
*/
private static final long serialVersionUID = -6394776786611105432L;
private int id;
private String username;
private String userpwd;
private String usertype;
private Set score = new HashSet();
private String userid;
// public void Users(){

// }

public String getUserid() {
    return userid;
}

public void setUserid(String suseriderid) {
    this.userid = suseriderid;
}


public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getUserpwd() {
    return userpwd;
}

public void setUserpwd(String userpwd) {
    this.userpwd = userpwd;
}

public String getUsertype() {
    return usertype;
}

public void setUsertype(String usertype) {
    this.usertype = usertype;
}



public int getId() {
    return id;
}

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

public Set<Score> getScore() {
    return score;
}


public void setScore(Set<Score> score) {
    this.score = score;
}

}
[/code]

score类[code="java"]
public class Score implements Serializable {

private String username;
private String score;
private int id;
private String userid;
private String examtime;
private String examname;
private Users user;
public Users getUser() {
    return user;
}
public void setUser(Users user) {
    this.user = user;
}
//private Users user;

// public void setUser(Users user) {
// this.user = user;
// }
// public void Score(){
//

// }
public String getUserid() {
return userid;
}

public void setUserid(String userid) {
    this.userid = userid;
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getScore() {
    return score;
}

public void setScore(String score) {
    this.score = score;
}

public int getId() {
    return id;
}

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

public String getExamtime() {
    return examtime;
}

public void setExamtime(String examtime) {
    this.examtime = examtime;
}

public String getExamname() {
    return examname;
}

public void setExamname(String examname) {
    this.examname = examname;
}

}
[/code]

users 映射文件
[code="java"]
<?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">

<class name="bean.usertrain.Users" table="users">

    <id name="id" type="java.lang.Integer">
        <column name="id"/>
            <generator class="sequence">
                <param name="sequence">sequence_name</param>
            </generator>  
    </id>
    <property name="username" type="java.lang.String">
        <column name="username"/>
    </property>
    <property name="userpwd" type="java.lang.String">
        <column name="userpwd"/>
    </property>
    <property name="usertype" type="java.lang.String">
        <column name="usertype"/>
    </property>
     <set name="score"  lazy="false"  inverse="false"   cascade="all"  table="score" >
      <key column="userid"/>
        <one-to-many  class="bean.usertrain.Score"/>
     </set>


</class>

[/code]

score类映射文件
[code="java"]
<?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">

<class name="bean.usertrain.Score" table="score">
    <id name="id" type="java.lang.Integer">
        <column name="id" />
        <generator class="native" />
    </id>
    <property name="username" type="java.lang.String">
        <column name="username" />
    </property>
    <property name="score" type="java.lang.String">
        <column name="score" />
    </property>
    <property name="examtime" type="java.lang.String">
        <column name="examtime" />
    </property>
    <property name="examname" type="java.lang.String">
        <column name="examname" />
    </property>

    <many-to-one name="user" class="bean.usertrain.Users" cascade="none" >   
        <column name="userid" />   
    </many-to-one> 

</class>


[/code]

方法
[code="java"] public boolean save(Score score,String userid) {
Session session= HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
// Users user=(Users)session.load(Users.class, new Integer("29"));
Users user = new Users();
user.setUserid(userid);
score.setUser(user);

    session.save(score);
    tx.commit();
    session.close();
    return true;
}[/code]

主要想 给 score 表中跟user类中添加一条记录,user 表的userid 跟 score 表的userid 要匹配上 我已运行 就报错
错误代码
[code="java"]
严重: Servlet.service() for servlet default threw exception
java.sql.SQLException: ORA-02289: 序列(号)不存在

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:742)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:798)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1038)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:838)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1131)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3284)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3328)
at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:75)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
at dao.exam.ScoreDAOImpl.save(ScoreDAOImpl.java:215)
at action.usertrain.ScoreServlet.addScore(ScoreServlet.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

[/code]

求教 解答
[b]问题补充:[/b]
回汪兆铭 那几个文章我也看了 还是没解决
回lovewhzlq
[code="java"]Users user=(Users)session.load(Users.class, new Integer("29"));

Users user = new Users(); [/code]
这。。 不行吧。 我注掉了 第一句 问题还是那样
[b]问题补充:[/b]
我oracle数据库 我就是看了 之前看了1L给的文章 把NATIVE改成sequence ,因为每次都自动执行一个
[code="java"]select
hibernate_sequence.nextval
from
dual[/code]
语句, 我按照别人写的建了一个[code="java"]create sequence hibernate_sequence start with 1 increment by 1;[/code]

不再报序列号不存在了 但是还有问题。。 这个问题就到这里了 谢谢各位了

  • 写回答

7条回答 默认 最新

查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机