| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2479 人关注过本帖
标题:@ManyToOne@OneToMany双向关联之java.sql.SQLSyntaxErrorException:ORA-009 ...
取消只看楼主 加入收藏
lovemm
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:170
专家分:24
注 册:2008-11-4
结帖率:71.43%
收藏
已结贴  问题点数:0 回复次数:2 
@ManyToOne@OneToMany双向关联之java.sql.SQLSyntaxErrorException:ORA-00904:标识符无效
   前几天用hibernate映射数据库产生了实体类,其中两个表叫左dept和emp,以下是它的实体类,我从数据库表联系发现他们之间是@OnetoMany @ManyToOne的双向关联,所以我就使用了关联,我的框架是SSH框架我使用的是hibernateTemplate让它自动生成代码,我在测试列出方法的时候报错:java.sql.SQLSyntaxErrorException: ORA-00904: "THIS_"."DEPT_DNO": 标识符无效
hibernateTemplate自动生成的Oracle sql语句如下:Hibernate:
    select
        this_.empno as empno1_1_,
        this_.dept_dno as dept8_1_1_,
    from
        Emp this_,
        Dept dept2_
    where
        this_.dept_dno=dept2_.dno(+)
14:53:53,534  WARN org.hibernate.util.JDBCExceptionReporter:100 - SQL Error: 904, SQLState: 42000
14:53:53,535 ERROR org.hibernate.util.JDBCExceptionReporter:101 - ORA-00904: "THIS_"."DEPT_DNO": 标识符无效



以下是数据库表

Emp

序号    列名    数据类型    长度    小数位    标识    主键    允许空    默认值    说明
1    EMPNO    VARCHAR2    40                       PK
2    DNO    VARCHAR2    40                       FK dept(dno)


Dept

序号    列名    数据类型    长度    小数位    标识    主键    允许空    默认值    说明
1    DNO    VARCHAR2    20                       PK

Dept.java
@Entity
public class Dept {

    // Fields

    private String dno;
    private Set<Emp> emps = new HashSet<Emp>();

        @OneToMany(mappedBy="dept",cascade={CascadeType.ALL})
    public Set<Emp> getEmps() {
        return emps;
    }

    public void setEmps(Set<Emp> emps) {
        this.emps = emps;
    }

    @Id
    public String getDno() {
        return this.dno;
    }
    public void setDno(String dno) {
        this.dno = dno;
   
Emp.java
Entity
public class Emp implements {

    // Fields

    private String empno;
    private Dept dept;

@Id
    public String getEmpno() {
        return this.empno;
    }

    public void setEmpno(String empno) {
        this.empno = empno;
    }
    @ManyToOne
    public Dept getDept() {
        return this.dept;
    }

    public void setDept(Dept dept) {
        this.dept = dept;
    }


[ 本帖最后由 lovemm 于 2011-4-29 15:16 编辑 ]
搜索更多相关主题的帖子: sql语句 数据库 
2011-04-29 15:11
lovemm
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:170
专家分:24
注 册:2008-11-4
收藏
得分:0 
怎么没人回复我啊,不是我的提问太难了吧
2011-04-29 15:32
lovemm
Rank: 2
来 自:广州
等 级:论坛游民
威 望:1
帖 子:170
专家分:24
注 册:2008-11-4
收藏
得分:0 
但我的Oracle数据库表根本就没这字段啊,我数据库字段只有数据dept的dno主键,数据emp的dno外键,根本就没有这个dept_dno啊,再说我是跟着数据库做事的不可以随便改动数据库表的
2011-05-03 08:30
快速回复:@ManyToOne@OneToMany双向关联之java.sql.SQLSyntaxErrorException:OR ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032689 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved