SSH框架中使用双向关联如何处理外键(添加)?

SSH框架中使用双向关联如何处理外键(添加)?

EG:已知表customer :user 为1:多关系
(一个user可以对应多个customer客户,一个customer只对应一个user用户)
外键在Customer表中,外键名为cust_user_id

classbean.hbm.xml
User添加关联属性配置一对多
Customer添加关联属性配置多对一

演示:
User中的Bean 内联代码片

	private String id;//用户id
	private String username;//用户名称
	private String password;//用户密码

	
	//1的方:添加关联属性 customer-外键cust_user_id-关联到user
	private Set customer =new HashSet(0);
	
	public Set getCustomer() {
		return customer;
	}
	public void setCustomer(Set customer) {
		this.customer = customer;
	}
	//
	public User(String 接收的名称) {
		this.接收的名称=接收的名称;
	}
	

.hbm.xml中配置一对多:

<!-- 1的一方,设置一对多,实现双向查询  set name中的数值是与bean中设置的关联属性名一致-->
		<set name="customer" inverse="true">
            <key>
                <column name="cust_user_id"/>
            </key>
            <one-to-many class="com.zero.domain.Customer" />
		</set>
	

演示:
Customer中的Bean 内联代码片

	private String cust_id;//客户id
	private String cust_name;//客户名字
//	private String cust_user_id;//用户跟进客户的id
	
//  外键处理
	private User user;
	//接受的名称
	private String 接收的名称;
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	public String get接收的名称() {
		return 接收的名称;
	}
	public void setId(String 接收的名称) {
		this.接收的名称= 接收的名称;
	}

.hbm.xml中配置一对多:

		  <many-to-one lazy="false" name="user" class="User" fetch="select">
            <column name="cust_user_id" length="32" />
        </many-to-one>
	

最后在添加的页面中的input的name值应该填写:
name="user.接收的名称"

就实现了双向关联处理外键问题

拓展
单向one-to-many是只能多方查询到一方,而一方查询不了关联在多方的信息。
双向many-to-many双向可以互相查询,两个表的类中都有外键属性,但是表中的外键还是在多方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值