当前位置: 首页 > 知识库问答 >
问题:

为什么MyEclipse在编译时显示join_table not found错误

徐景明
2023-03-14

我有以下两个实体,但在Trainer中的oneToMany关系行显示错误消息“Join table trainer_batch can not be found”,而我使用的是@JoinColumn注释。PLGG如下所示...

@Entity
@Table(name="trainer")
public class Trainer {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    int id;
    String name;
    @OneToMany(cascade=CascadeType.ALL)
    @JoinColumn(name="trainerid")
    Set batches=new HashSet();
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Set getBatches() {
        return batches;
    }
    public void setBatches(Batch batch) {
        batches.add(batch);
    }


}


@Entity
@Table(name="batch")
public class Batch {

    public String getSlot() {
        return slot;
    }
    public void setSlot(String slot) {
        this.slot = slot;
    }
    public String getTopic() {
        return topic;
    }
    public void setTopic(String topic) {
        this.topic = topic;
    }
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    int id;
    String slot;
    String topic;

}

persistance.xml如下所示


<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">

    <persistence-unit name="one_to_many_pk_fkPU" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name = "hibernate.connection.driver_class" value = "com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
            <property name = "hibernate.connection.url" value = "jdbc:sqlserver://localhost:1433;DatabaseName=test; MARS_Connection=yes;"/>
            <property name = "hibernate.connection.username" value = "sa"/>
            <property name = "hibernate.connection.password" value = "test"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
        </properties>
    </persistence-unit>

</persistence>

共有1个答案

郤立果
2023-03-14

应该将泛型用作批处理。使用您的关系,如下所示:set batches=new hashset ();

 类似资料:
  • 问题内容: 调用显示编译时错误,并显示以下消息: getSupportFragmentManager()。getFragments()只能在同一库组中调用(groupId = com.android.support) 我在中导入了以下类: 延伸。 我的项目模块级别文件如下: 这是inside 方法的源代码。 我最近将Android Studio更新到了最新的稳定版本(2.3),并且还更新了Andr

  • 为什么这不能用gcc48和clang32编译? GCC错误: 叮当声错误: 编辑-解决方案 我已经接受了查尔斯·萨尔维亚的回答,但出于实际原因,我无法使用提出的变通方法(专门研究N)。我找到了其他适合我的解决办法。如果依赖于T,则启用_:

  • 在我的gcloud控制台中,我定义的入口显示以下错误: 同步期间出错:评估入口规范时出错:服务“monitoring/kube prometheus”类型为“ClusterIP”,应为“NodePort”或“LoadBalancer” 我使用traefik作为反向代理(而不是nginx),因此我使用集群IP定义入口。据我所知,所有流量都是通过traefik服务(定义了负载均衡器入口)代理的,因此我

  • 问题内容: 遇到一个错误地使用 而不是 在其代码中的人,它没有显示为编译错误。 是因为 是相同的 ? 问题答案: 没有编译错误,因为它是有效的(尽管相当无用) 一元运算符 ,其使用方式与以下方式相同: Java语言规范中的相关部分是Unary Plus运算符+(第15.15.3节) 。它指定调用一元运算会导致操作数的一元数值提升(第5.6.1节)。这意味着: * 如果操作数是编译时类型的,,,或,