hibernate查询问题createQuery()有问题
大家好,今天学习hibernate 用的是一对多是自身的映射的
插入,单个查询都没问题,可等查询列表的时候出问题表查出来的数据其它字段都有值只有id全是0不知道为什么?
这个是model类
public class Menu {
private long id;
private String name;
private String url;
private Menu menu;
private Set<Menu>child = new HashSet<Menu>();
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public Menu getMenu() {
return menu;
}
public void setMenu(Menu menu) {
this.menu = menu;
}
public Set<Menu> getChild() {
return child;
}
public void setChild(Set<Menu> child) {
this.child = child;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
这个 是hbm.xml文件
<hibernate-mapping>
<class name="com.test.hailang.model.Menu" table="j_menu">
<id column="id" type="long">
<generator class="increment"></generator>
</id>
<property name="name" type="string"></property>
<property name="url" type="string"></property>
<set name="child" cascade="all" inverse="true">
<key column="pid"></key>
<one-to-many class="com.test.hailang.model.Menu"/>
</set>
<many-to-one name="menu" column="pid" class="com.test.hailang.model.Menu">
</many-to-one>
</class>
</hibernate-mapping>
向表中插入数据
Menu menu = new Menu();
menu.setName("first");
menu.setUrl("163.com");
Menu m1 = new Menu();
m1.setName("second");
m1.setUrl("126.com");
menu.getChild().add(m1);
m1.setMenu(menu);
Menu menu2 = new Menu();
menu2.setName("third");
menu2.setUrl("sina");
menu.getChild().add(menu2);
menu2.setMenu(menu);
数据库中的数据
id name url pid
1 first 163.com null
2 second 126.com 1
3 third sina 1
这个是查询方法的代码
Transaction trance = session.beginTransaction();
List<Menu> list = null;
Query query=session.createQuery("from Menu");
List l1 = query.list();
list =(List<Menu>) query.list();
当我循环list的时候取别的字段都没问题只有当menu.getId()的时候全是0不知道为什么,有知道的朋友请指点下谢谢了!!!
------解决方案--------------------
你是MyE还是Ec啊,直接百度就行,看语句是没有问题的把语句复制到数据库执行一下,如果没有问,我觉得就是配置问题,你在看看我给你发的那个配置