Java Hibernate:意外标记:以及在比较日期时
我通过比较映射为java.util.Date的两个datetime列“start”和“end”,获取两个日期之间的所有插槽 错误Java Hibernate:意外标记:以及在比较日期时,java,hibernate,hql,Java,Hibernate,Hql,我通过比较映射为java.util.Date的两个datetime列“start”和“end”,获取两个日期之间的所有插槽 错误 unexpected token: end near line 1, column 74 [From com.booking.tokbox.domain.Slot where ownerid = ? and start >= ? and end <= ?] 我猜,end是SQL中受保护的关键字。 重命名字段或使用别名(插槽s=>s.end) 例如:我
unexpected token: end near line 1, column 74 [From
com.booking.tokbox.domain.Slot where
ownerid = ? and start >= ? and end <= ?]
我猜,end是SQL中受保护的关键字。 重命名字段或使用别名(插槽s=>s.end)
例如:我猜是end是SQL中受保护的关键字。 重命名字段或使用别名(插槽s=>s.end)
例如:
end
是SQL中的一个关键字,您不能使用它。请重命名它end
是SQL中的一个关键字,您不能使用它。请重命名它如果您为实体别名(并使用select子句使其符合JPA),会发生什么情况:从slot slot中选择slot,其中slot.ownerid=?和slot.start>=?和slot.end如果您为实体别名(并使用select子句使其符合JPA),会发生什么情况:从slot slot中选择slot,其中slot.ownerid=?和slot.start>=?和插槽。结束
public List<Slot> fetchSlots(Session session,int ownerid,String start,String end) throws ParseException{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = dateFormat.parse(start);
Date endDate = dateFormat.parse(end);
List<Slot> slots = null;
Query query = session.createQuery("From Slot where ownerid = ? and start >= ? and end <= ?").setParameter(0,ownerid)
.setParameter(1, startDate).setParameter(2,endDate);
slots = query.list();
if(slots.size() > 0)
return slots;
return null;
}
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Version;
@Entity
@Table(name="SLOT")
public class Slot {
public Slot(){
}
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="slotid")
private Integer id;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name="ownerid",insertable = false, updatable = false)
private User user;
@Column(name="start")
private Date start;
@Column(name="end")
private Date end;
@Column(name="status")
private String status;
private Integer ownerid;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created", nullable = false, updatable=false)
@Version
private Date created;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public User getUser() {
return this.user;
}
public void setUser(User owner) {
this.user = owner;
}
public void setStart(Date start) {
this.start = start;
}
public Date getEnd() {
return end;
}
public void setEnd(Date end) {
this.end = end;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Integer getOwnerid() {
return ownerid;
}
public void setOwnerid(Integer ownerid) {
this.ownerid = ownerid;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public Date getStart() {
return start;
}
}