今天写了个po类,无论怎么运行环境,都产生不了表,后来才知道是关键字的问题。
private String start;
@Column()
public String getStart()
{
return start;
}
public void setStart(String start)
{
this.start = start;
}
这个start在oracle中是关键字。改为如下
@Column(name = "enable")
public String getStart()
{
return start;
}
public void setStart(String start)
{
this.start = start;
}
oracel的关键字附上:
一般保留关键字不能用做对象名
ACCESS ADD ALL ALTER AND ANY AS ASC AUDIT BETWEEN BY CHAR CHECK CLUSTER COLUMN COMMENT COMPRESS CONNECT CREATE CURRENT DATE DECIMAL DEFAULT DELETE DESC DISTINCT DROP ELSE EXCLUSIVE EXISTS FILE FLOAT FOR FROM GRANT GROUP HAVING IDENTIFIED IMMEDIATE IN INCREMENT INDEX INITIAL INSERT INTEGER INTERSECT INTO IS LEVEL LIKE LOCK LONG MAXEXTENTS MINUS MLSLABEL MODE MODIFY NOAUDIT NOCOMPRESS NOT NOWAIT NULL NUMBER OF OFFLINE ON ONLINE OPTION OR ORDER P CTFREE PRIOR PRIVILEGES PUBLIC RAW RENAME RESOURCE REVOKE ROW ROWID ROWNUM ROWS SELECT SESSION SET SHARE SIZE SMALLINT START SUCCESSFUL SYNONYM SYSDATE TABLE THEN TO TRIGGER UID UNION UNIQUE UPDATE USER VALIDATE VALUES VARCHAR VARCHAR2 VIEW WHENEVER WHERE WITH
详细信息可以查看v$reserved_words视图
public RasDescPo findById(String id)
{
if (StringUtils.isEmpty(id))
{
return null;
}
List<RasDescPo> rasDescPos = getHibernateTemplate().find("from RasDescPo where start=?", id);
if (CollectionUtils.isEmpty(rasDescPos))
{
return null;
}
return rasDescPos.get(0);
}
这样的查询也会有问题,具体原因暂时不知道,有待求解。
List<RasDescPo> rasDescPos = getHibernateTemplate().find("from RasDescPo where start=?", id);
是不是这句代码写错了,条件的字段都不一样哦。
我认为改为如下:
public RasDescPo findById(String id)
{
if (StringUtils.isEmpty(id))
{
return null;
}
List<RasDescPo> rasDescPos = getHibernateTemplate().find("from RasDescPo where started=?", id);
if (CollectionUtils.isEmpty(rasDescPos))
{
return null;
}
return rasDescPos.get(0);
}
或
public RasDescPo findById(String id)
{
if (StringUtils.isEmpty(id))
{
return null;
}
List<RasDescPo> rasDescPos = getHibernateTemplate().find("from RasDescPo where RasDescPo.id=?", id);
if (CollectionUtils.isEmpty(rasDescPos))
{
return null;
}
return rasDescPos.get(0);
}
可以解决问题。