当前位置:编程学习 > JAVA >>

Ejb3.0一对多关系中间表找不到


库表:create table test.T_class(

        class_no  varchar(20) primary key,
        class_name  varchar(50)
     );

     create table test.t_tus(

       t_no   varchar(20) primary key,
       t_name  varchar(50),
       t_class varchar(20),
       Foreign key(t_class) references test.T_class(class_no)
    );
T_class映射类:
@Entity
@Table(name ="T_class" , schema = "test")
public class T_class implements Serializable{

private String class_no;

@OneToMany(cascade={CascadeType.ALL},fetch=FetchType.EAGER)
public Collection<T_stu> getCollect() {
return collect;
}

public void setCollect(Collection<T_stu> collect) {
this.collect = collect;
}

private Collection<T_stu> collect = new ArrayList<T_stu>();

@Id
@Column(name="class_no",unique=true,nullable = false, length = 20)
public String getClass_no() {
return class_no;
}

public void setClass_no(String classNo) {
class_no = classNo;
}

@Column(name = "class_name",nullable = false,length = 50)
public String getClass_name() {
return class_name;
}

public void setClass_name(String className) {
class_name = className;
}

private String class_name;

}

T_stu映射类:
@Entity
@Table(name = "t_tus" , schema = "test")
public class T_stu implements Serializable{

private String t_no;

@Id
@Column(name = "t_no",unique = true,nullable = false,length = 20)
public String getT_no() {
return t_no;
}

public void setT_no(String tNo) {
t_no = tNo;
}

@Column(name = "t_name",unique = true,nullable = false,length = 50)
public String getT_name() {
return t_name;
}

public void setT_name(String tName) {
t_name = tName;
}

@ManyToOne
@JoinColumn(name = "t_class")
public T_class getClass_no() {
return class_no;
}

public void setClass_no(T_class classNo) {
class_no = classNo;
}

private String t_name;

private T_class class_no;

}
Weblogic报:
Exception in thread "main" javax.ejb.EJBException: EJB Exception: ; nested exception is: 
<openjpa-0.0.0-rnull nonfatal general error> org.apache.openjpa.persistence.PersistenceException: Table 'test.t_class_t_tus' doesn't exist {prepstmnt 71 SELECT t0.class_no, t2.t_no, t3.class_no, t3.class_name, t2.t_name FROM test.T_class t0 INNER JOIN test.T_class_t_tus t1 ON t0.class_no = t1.T_CLASS_CLASS_NO INNER JOIN test.t_tus t2 ON t1.COLLECT_T_NO = t2.t_no LEFT OUTER JOIN test.T_class t3 ON t2.t_class = t3.class_no ORDER BY t0.class_no ASC} [code=1146, state=42S02]
at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.unwrapRemoteException(RemoteBusinessIntfProxy.java:105)
at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:87)
at $Proxy0.SelectOneToMany(Unknown Source)
at com.ejb.pojo.Client.main(Client.java:84)
这中间表是EJB容器产生的为什么会报中间表找不到的呢?请教怎么解决。。。。。。
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,