0

我有以下两个实体。但是在 oneToMany 关系行的 Trainer 中,它显示错误消息“无法找到加入表 trainer_batch”,而我正在使用 @JoinColumn 注释。Plggrams如下...

@实体
@Table(name="培训师")
公共类培训师{

    @ID
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    内部标识;
    字符串名称;
    @OneToMany(级联=CascadeType.ALL)
    @JoinColumn(name="trainerid")
    设置批次=new HashSet();
    公共字符串 getName() {
        返回名称;
    }
    公共无效集合名称(字符串名称){
        this.name = 名称;
    }
    公共设置 getBatches() {
        退货批次;
    }
    公共无效setBatches(批量){
        批次。添加(批次);
    }


}


@实体
@Table(name="批次")
公共类批次{

    公共字符串 getSlot() {
        返回槽;
    }
    公共无效setSlot(字符串槽){
        this.slot = 插槽;
    }
    公共字符串 getTopic() {
        返回主题;
    }
    公共无效 setTopic(字符串主题){
        this.topic = 主题;
    }
    @ID
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    内部标识;
    字符串槽;
    字符串主题;

}

persistance.xml 如下

<?xml 版本="1.0" 编码="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>
        <属性>
            <属性名称=“hibernate.connection.driver_class”值=“com.microsoft.sqlserver.jdbc.SQLServerDriver”/>
            <property name = "hibernate.connection.url" value = "jdbc:sqlserver://localhost:1433;DatabaseName=test; MARS_Connection=yes;"/>
            <属性名称=“hibernate.connection.username”值=“sa”/>
            <属性名称=“hibernate.connection.password”值=“测试”/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
        </属性>
    </persistence-unit>

</持久性>

4

1 回答 1

0

你应该使用泛型作为 Batch 。像这样使用您的关系: Set<Batch> batches=new HashSet<Batch>();

于 2012-12-19T04:16:22.870 回答