论坛首页 Java企业应用论坛

一个简单的HQL问题

浏览 4398 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2003-10-13  
代码如下

    Long id = new Long(2);;
    Message message = (Message); session.find("from Message as message where message.id=?", id, Hibernate.LONG);;


这样提示转型出错 id不能转化成Hibernate.LONG
id要定义成什么类型 哪位大虾用过的告知 谢谢
   发表时间:2003-10-13  
你的message.id是什么类型?
0 请登录后投票
   发表时间:2003-10-14  
Message.id类型是Long
0 请登录后投票
   发表时间:2003-10-14  
应该没错呀。
把详细的代码,映射,错误栈贴出。
0 请登录后投票
   发表时间:2003-10-14  
Message 类

package hello;

public class Message {
  private Long id;
  private String text;
  private Message nextMessage;
  public Message(); {}

  public Message(Long id); {
    this.id = id;
  }

  public Message(String text); {
    this.text = text;
  }

  public Message(Long id, String text); {
    this.id = id;
    this.text = text;
  }

  public Long getId(); {
    return id;
  }

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

  public String getText(); {
    return text;
  }

  public void setText(String text); {
    this.text = text;
  }

  public Message getNextMessage(); {
    return nextMessage;
  }

  public void setNextMessage(Message nextMessage); {
    this.nextMessage = nextMessage;
  }
}


配置文件:

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
	<class
		name="hello.Message"
		table="Messages"
	>
	<id	name="id"
		column="MESSAGE_ID"
	>
	<generator class="native"/>
	</id>
	<property
		name="text"
		column="MESSAGE_TEXT"
	/>
	<many-to-one
		name="nextMessage"
		cascade="all"
		column="NEXT_MESSAGE_ID"
	/>
	</class>
</hibernate-mapping>


测试类:

package hello;

import net.sf.hibernate.Hibernate;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;

/**
 * @author getdown
 * @version 1.0
 */

public class Hello {
  public Hello(); {
  }

  public static void main(String[] args); throws Exception {
    Configuration cfg = new Configuration();.addClass(Message.class);;
    SessionFactory sessions = cfg.buildSessionFactory();;
    Session session = sessions.openSession();;

    Long id = new Long(1);;
    Message message = (Message); session.find("from Message as message where message.id=?", id, Hibernate.LONG);;
    System.out.println(message.getText(););;
    session.close();;
  }

}


错误:

java.lang.ClassCastException

at hello.Hello.main(Hello.java:23)
0 请登录后投票
   发表时间:2003-10-14  
引用

Message message = (Message) session.find("from Message as message where message.id=?", id, Hibernate.LONG);

Session.list()返回java.util.List
0 请登录后投票
   发表时间:2003-10-14  
3x 这种小错误居然没有发现

呵呵
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics