对java有感觉 2009-04-09 13:18 采纳率: 0%
浏览 193
已采纳

一个HQL语句不会写,10W火急啊~!!!!

[color=red]这是我的roomPOJO[/color]
package org.shj.hotels.pojo;
import java.util.HashSet;
import java.util.Set;

/**

  • Room entity.
  • @author MyEclipse Persistence Tools */

public class Room implements java.io.Serializable {

// Fields

private Integer roomid;
private Roomtype roomtype;
private Roomstate roomstate;
private String roomname;
private String roomprice;
private String roomexplain;
private Set openrooms = new HashSet(0);

// Constructors

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

/** full constructor */
public Room(Roomtype roomtype, Roomstate roomstate, String roomname,
        String roomprice, String roomexplain, Set openrooms) {
    this.roomtype = roomtype;
    this.roomstate = roomstate;
    this.roomname = roomname;
    this.roomprice = roomprice;
    this.roomexplain = roomexplain;
    this.openrooms = openrooms;
}

// Property accessors

public Integer getRoomid() {
    return this.roomid;
}

public void setRoomid(Integer roomid) {
    this.roomid = roomid;
}

public Roomtype getRoomtype() {
    return this.roomtype;
}

public void setRoomtype(Roomtype roomtype) {
    this.roomtype = roomtype;
}

public Roomstate getRoomstate() {
    return this.roomstate;
}

public void setRoomstate(Roomstate roomstate) {
    this.roomstate = roomstate;
}

public String getRoomname() {
    return this.roomname;
}

public void setRoomname(String roomname) {
    this.roomname = roomname;
}

public String getRoomprice() {
    return this.roomprice;
}

public void setRoomprice(String roomprice) {
    this.roomprice = roomprice;
}

public String getRoomexplain() {
    return this.roomexplain;
}

public void setRoomexplain(String roomexplain) {
    this.roomexplain = roomexplain;
}

public Set getOpenrooms() {
    return this.openrooms;
}

public void setOpenrooms(Set openrooms) {
    this.openrooms = openrooms;
}

}
这是我的数据库
create table room(
roomid int primary key identity(1,1),
roomname varchar(50),
roomtypeid int references roomtype(roomtypeid),
roomprice varchar(50),
roomstateid int references roomstate(roomstateid),
roomexplain varchar(50)
)
[color=red]insert into room values('101',1,'100',1,'普通标准间+空净房')[/color]
我可以得到这条红色标记的数据也就是说我可以在Action中得到这条数据
但是我想修改这条数据roomtypeid=1修改为roomtypeid=4
我的DAO是extends HibernateDaoSupport
这个逻辑该如何实现啊或者这个HQL语句怎么写呢?10W火急啊
小生在这里先谢谢各位了

  • 写回答

3条回答 默认 最新

  • iteye_14206 2009-04-09 18:03
    关注

    楼上错了吧?
    更新数据的条件一般应该是根据主键来的
    你的hql是批量更新,没有限定主键

    楼主,假设按照你说的,你在action中获得了这条数据,那么hibernate应该是还给你一个对象的,设为room变量名
    不过由于你做了关系配置,可以简化下
    不要用封装的update,用hql会方便些
    String hql = "update Room r set r.Roomtype.roomtypeid=4 where r.roomid="+room.getRoomid();

    要用update方法的话,你就要
    get(Roomtype.class, 4)
    然后room.setRoomtype(传入上面获得的roomtype对象)
    之后直接更新这个room
    update(room)就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!