hibernate注解使用

今天写了个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);

 是不是这句代码写错了,条件的字段都不一样哦。

我认为改为如下:

扫描二维码关注公众号,回复: 807409 查看本文章
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);
    }

 可以解决问题。

猜你喜欢

转载自08284008.iteye.com/blog/1673113