`

多_对_多

 
阅读更多
//Hibernate--多对多
--学生表
create table Studentv(
id number primary key,
stuId varchar2(20) not null,
stuName varchar2(50) not null,
stuAge number not null
);
--课程表
create table Coursev(
id number primary key,
couId varchar2(20) not null,
couName varchar2(50) not null
);
--中间表
create table Stu_Couv(
sId number not null,
cId number not null
);

//课程表实体类
public class Coursev implements Serializable
{
    private int id;
    private String cId;
    private String cName;
    private Set<Studentv> stus = new HashSet<Studentv>();
//省略get(),set();
}
//学生实体类
public class Studentv implements Serializable
{
    private int id;
    private String sId;
    private String sName;
    private int sAge;
    private Set<Coursev> cous = new HashSet<Coursev>();
//省略get(),set();
}

//Coursev.hbm.xml
<hibernate-mapping package="com.rt.xbliuc.pojo">
<class name="Coursev" table="Coursev">
<id name="id" column="id">
<generator class="assigned"/>
</id>
<property name="cId" column="couId"/>
<property name="cName" column="couName"/>
<set name="stus" table="Stu_Couv" lazy="true" cascade="all">
<key column="cId"/>
<many-to-many class="com.rt.xbliuc.pojo.Studentv" column="sId"/>
</set>
</class>
</hibernate-mapping>

//Studentv.hbm.xml
<hibernate-mapping package="com.rt.xbliuc.pojo">
<class name="Studentv" table="Studentv">
<id name="id" column="id">
<generator class="assigned"/>
</id>
<property name="sId" column="stuId"/>
<property name="sName" column="stuName"/>
<property name="sAge" column="stuAge"/>
<set name="cous" inverse="true" table="Stu_Couv" lazy="true" cascade="all">
<key column="sId"/>
<many-to-many class="com.rt.xbliuc.pojo.Coursev" column="cId"/>
</set>
</class>
</hibernate-mapping>

//测试类
Transaction transaction = session.beginTransaction();
HashSet<Studentv> cSet = new HashSet<Studentv>();
HashSet<Coursev> sSet = new HashSet<Coursev>();
Studentv s = new Studentv();
Coursev c = new Coursev();
s.setId(1);
s.setsId("s001");
s.setsName("sName");
s.setsAge(20);
c.setId(2);
c.setcId("c001");
c.setcName("cName");
cSet.add(s);
sSet.add(c);
c.setStus(cSet);
s.setCous(sSet);
session.save(s);
transaction.commit();
session.close();
分享到:
评论

相关推荐

    BP_bp多输入_matlab神经网络_多输出预测_多输入多输出_BP多输出_源码.rar

    这样的模型在许多领域都有应用,如气象预报、股票市场分析、工程系统控制等,因为它能够捕捉输入变量间的复杂关系,并对多个响应变量进行联合预测。 MATLAB作为一种强大的数学计算和数据可视化工具,内置了神经网络...

    理解python中__init__.py和__all__

    在一个工程文件下面,我们可能会有很多的py文件(模块),文件太多,管理很不方便,这时候我们就可以创建一个包(package)对这些文件进行管理,把具有共同特征的文件放在同一个package里面,那该如何创建package,很简单...

    多分类python代码_libsvm多分类_模式识别分类_多分类_

    对特征进行预处理,例如标准化,以确保数据在同一尺度上: ```python scaler = StandardScaler() X_scaled = scaler.fit_transform(X) ``` 然后,将数据拆分为训练集和测试集: ```python X_train, X_test, y_...

    mul.rar_matlab 多目标_multi objective_spea_多目标_多目标优化

    而PPT文件(多目标优化.ppt)很可能是对多目标优化理论的讲解,可能包括算法原理、步骤以及如何在MATLAB中应用的实例。 标签 "matlab_多目标 multi_objective spea 多目标 多目标优化" 提示了可能使用了一种名为...

    inception_v3_weights_tf_dim_ordering_tf_kernels.zip

    1. **多尺度信息处理**:通过使用不同大小的卷积核,Inception块可以同时捕获局部和全局信息,增强模型的泛化能力。 2. **降维操作**:为了减少计算量和参数数量,Inception V3引入了“瓶颈”结构,即先进行1x1卷积...

    license_eval_halcon_steady_2021_07.dat等多个文件.rar

    HALCON的许可证可能基于浮动许可或固定许可,前者允许多个用户在许可池内共享许可,而后者则为每个用户分配一个固定的使用权限。 压缩包子文件的文件名称列表虽然没有详细列出,但可以推测除了"license_eval_halcon...

    sample_venc_海思venc源码_sample_venc_

    在实际应用中,开发者可能需要根据具体需求对`sample_venc`进行优化,如调整编码参数以平衡画质和带宽,或者实现多路编码、动态码率控制等功能。此外,还可以结合其他模块,如音频编码、流媒体传输等,构建完整的...

    COCO_val2017_detections_AP_H_56_person.zip

    COCO数据集广泛应用于物体检测、分割、关键点检测等多个视觉任务,提供了大量的图像和详细的注释。"val2017"表示这是验证集,通常用于在模型训练完成后评估模型性能,以确保模型不会过拟合训练数据。 在这个验证...

    mask_rcnn_inception_v2_coco_2018_01_28(附代码).zip

    C++版本可能需要对这些库进行封装,以便在C++环境中运行。 6. **性能优化**:尽管未使用GPU,但开发者可能已经进行了各种优化,如批量处理、多线程计算、内存管理等,以提高在CPU上的运行效率。 总之,"mask_rcnn_...

    SAP_BOL_Browser

    关系在BOL中用于定义对象间的关联,它们可以是一对一、一对多或多对多。 继续深入,`ProductShortText`关系下有两个关键属性:`LANGU`和`SHORT_TEXT`。在中文环境下,`LANGU`的值通常被设为'1',表示中文语言。而`...

    f.rar_matlab_pitchv78_优化_多目标_多目标优化

    "PitchV78"可能是对经典多目标优化算法的一种改进或变体,例如纳什谈判解决方案、帕雷托前沿搜索算法、epsilon-约束方法或者多目标遗传算法等。MATLAB中的全局优化工具箱通常包含了一些这样的算法,它们能有效地处理...

    SeggerEval_WIN32_MSVC_MinGW_GUI_V616

    仿真器则更进一步,不仅模拟显示,还可能包括对CPU和其他外围设备的仿真,为开发者提供更接近实际运行环境的测试条件。 **MinGW** (Minimalist GNU for Windows) 是一个开源项目,它提供了一套GCC(GNU Compiler ...

    西门子授权工具Sim_EKB_Install_2016_05_06

    Step7提供了对S7系列PLC的强大支持,包括S7-300、S7-400以及更先进的SIMATIC S7-1200和S7-1500。通过Step7,工程师可以编写、调试和诊断PLC程序,进行自动化系统的配置。Sim_EKB_Install_2016_05_06可能包含了Step7...

    remove_noise_NOISE_Python;去噪_

    在`remove_noise.py`文件中,应该包含了以上代码示例,通过运行这个脚本,我们可以对输入的带有噪声的图像进行去噪处理,得到更清晰的结果。这种方法适用于各种应用场景,如医学图像分析、工业检测、文字识别等。...

    VisualCppRedist_AIO_x86_x64_29.zip

    这些库不仅对C++开发者非常重要,也对普通用户至关重要,因为许多流行的应用程序和游戏都依赖于它们。 需要注意的是,尽管这个集合包很方便,但并非所有的VC++ Redist都需要安装。用户应根据实际遇到的缺失文件提示...

    Linux多线程编程_linux多线程_Linux多线程;应用笔记_columnc9g_

    9. **线程局部存储**:`pthread_key_create()`, `pthread_getspecific()`, `pthread_setspecific()`用于创建和管理线程特有的数据,这些数据仅对当前线程可见。 10. **线程安全函数**:在多线程环境下,使用线程...

    PL2303_Prolific_DriverInstaller_v130

    1. 操作系统兼容性:驱动程序通常会支持多个Windows版本,例如Windows XP、Vista、7、8、10等,但具体支持哪些版本需要查看驱动程序的详细信息。 2. 硬件需求:确保计算机拥有可用的USB端口,并且需要连接的设备是...

    SBPCI_WebDrvsV5_12_01.rar

    版本号"V5_12_01"表明这是该驱动的第五大版本,第12个小版本,第1次修正版,通常意味着软件开发者对驱动进行了多次改进和修复。 关于驱动程序,它们是操作系统与硬件设备之间的桥梁,使得操作系统能够识别并有效...

    MTK_SP_Flash_Tool_v5.2112_Win.zip

    - MTK设备的对应固件(scatter文件),通常是一个包含多个分区镜像的ZIP文件。 - USB驱动程序,确保电脑能够识别连接的MTK设备。 在使用过程中,用户必须谨慎操作,因为错误的刷机操作可能导致设备变砖。因此,在...

Global site tag (gtag.js) - Google Analytics