Hibernate 多对多例

SQL(MY SQL):
create table tgroup (
group_id int not null auto_increment,
name varchar(16) not null default '',
primary key (group_id)
) type=innodb;

create table trole (
role_id int not null auto_increment,
name varchar(16) not null default '',
primary key (role_id)
) type=innodb;

create table tgroup_role (
group_id int not null,
role_id int not null,
primary key(group_id, role_id),
index (group_id),
foreign key (group_id) references tgroup(group_id),
index (role_id),
foreign key (role_id) references trole(role_id)
) type=innodb;

Group 类:
package ivan.hibernate.many2many;
public class Group {
private int id;
private String name;
private Set roles = new HashSet();
...
}

Group.hbm.xml:
<hibernate-mapping>
<class name="ivan.hibernate.many2many.Group" table="tgroup">
<id name="id" column="group_id" unsaved-value="0">
<generator class="increment"/>
</id>
<property name="name" type="string"/>
<set name="roles"
table="tgroup_role"
cascade="save-update">
<key column="group_id"/>
<many-to-many class="ivan.hibernate.many2many.Role"
column="role_id"/>
</set>
</class>
</hibernate-mapping>

Role 类:
package ivan.hibernate.many2many;
public class Role {
private int id;
private String name;
private Set groups = new HashSet();
...
}

Role.hbm.xml:
<hibernate-mapping>
<class name="ivan.hibernate.many2many.Role" table="trole">
<id name="id" column="role_id" unsaved-value="0">
<generator class="increment"/>
</id>
<property name="name" type="string"/>
<set name="groups"
table="tgroup_role"
inverse="true"
cascade="save-update">
<key column="role_id"/>
<many-to-many class="ivan.hibernate.many2many.Group"
column="group_id"/>
</set>
</class>
</hibernate-mapping>

hibernate.cfg.xml 同前面的例子差不多。

public class Test {

public static void main(String[] args) throws HibernateException {

Role role1 = new Role();
role1.setName("Role1");
Role role2 = new Role();
role2.setName("Role2");
Role role3 = new Role();
role3.setName("Role3");
Group group1 = new Group();
group1.setName("group1");
Group group2 = new Group();
group2.setName("group2");
Group group3 = new Group();
group3.setName("group3");
group1.getRoles().add(role1);
group1.getRoles().add(role2);
group2.getRoles().add(role2);
group2.getRoles().add(role3);
group3.getRoles().add(role1);
group3.getRoles().add(role3);
role1.getGroups().add(group1);
role1.getGroups().add(group3);
role2.getGroups().add(group1);
role2.getGroups().add(group2);
role3.getGroups().add(group2);
role3.getGroups().add(group3);

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx= session.beginTransaction();
session.save(role1);
session.save(role2);
session.save(role3);
session.save(group1);
session.save(group2);
session.save(group3);
tx.commit();
session.close();
sessionFactory.close();
}
}
MATLAB主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性内容概要:本文主要介绍了一种在MATLAB环境下实现的主动噪声和振动控制算法,该算法针对较大的次级路径变化具有较强的鲁棒性。文中详细阐述了算法的设计原理与实现方法,重点解决了传统控制系统中因次级路径动态变化导致性能下降的问题。通过引入自适应机制和鲁棒控制策略,提升了系统在复杂环境下的稳定性和控制精度,适用于需要高精度噪声与振动抑制的实际工程场景。此外,文档还列举了多个MATLAB仿真实及相关科研技术服务内容,涵盖信号处理、智能优化、机器学习等多个交叉领域。; 适合人群:具备一定MATLAB编程基础和控制系统理论知识的科研人员及工程技术人员,尤其适合从事噪声与振动控制、信号处理、自动化等相关领域的研究生和工程师。; 使用场景及目标:①应用于汽车、航空航天、精密仪器等对噪声和振动敏感的工业领域;②用于提升现有主动控制系统对参数变化的适应能力;③为相关科研项目提供算法验证与仿真平台支持; 阅读建议:建议读者结合提供的MATLAB代码进行仿真实验,深入理解算法在不同次级路径条件下的响应特性,并可通过调整控制参数进一步探究其鲁棒性边界。同时可参考文档中列出的相关技术案拓展应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值