属性映射sample List

本文介绍了在对象关系映射(ORM)中如何定义不同类型的关联关系,包括通过外键实现的一对多和多对一关系,以及通过关联表实现的多对多关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.通过外键关联的多对一和一对多关系:

<many-to-one name="metaProps" column="PROP_ID" class="com.adosoft.meta.domain.MetaProps" cascade="save-update" />

<set name="datas" inverse="false" lazy="true" cascade="all-delete-orphan" order-by="id">
<key column="KEY_ID" />
<one-to-many class="com.adosoft.meta.domain.Data" />
</set>

2.通过关联表关联的多对多关系:

<set name="permissions" table="T_ROLE_PERMISSION" lazy="true">
<key column="ROLE_ID" />
<many-to-many class="com.adosoft.exam.domain.Permission"> <column name="PERMISSION_ID" />
</many-to-many>
</set>
### 映射字典的概念 Python 中的字典(Dictionary)是一种基于键值对存储的数据结构,属于哈希映射的一种实现形式[^1]。这种数据结构允许以 O(1) 的时间复杂度完成插入、删除和查找操作,因此非常适合用于需要频繁访问特定元素的应用场景。 ### 创建与基本操作 创建一个字典可以通过大括号 `{}` 或者 `dict()` 构造器来完成: ```python # 使用大括号创建字典 my_dict = {'name': 'Alice', 'age': 25} # 使用 dict() 函数创建字典 another_dict = dict(name='Bob', age=30) ``` 向已有的字典中添加新条目或更新现有条目的方式如下所示: ```python my_dict['city'] = 'Beijing' print(my_dict) # 输出: {'name': 'Alice', 'age': 25, 'city': 'Beijing'} ``` 获取指定键对应的值可以使用方括号索引的方式: ```python value = my_dict['name'] print(value) # 输出: Alice ``` 如果尝试访问不存在的键,则会抛出 KeyError 错误;为了避免这种情况发生,建议先检查键是否存在或者使用 get 方法作为替代方案: ```python if 'address' in my_dict: print(my_dict['address']) else: print('Key not found') # 更安全的方法是使用 .get() safe_value = my_dict.get('address', 'Default Value') print(safe_value) # 如果 key 存在则返回对应 value 否则返回默认值 Default Value ``` ### 字典视图 自 Python 2.7 版本起引入了字典视图功能,提供了三种类型的视图对象:`keys()` 返回所有键组成的集合视图、`values()` 返回所有值构成的序列视图以及 `items()` 提供键值对组合而成的迭代器视图[^3]。这些视图为开发者提供了一种更加灵活的方式来查看和操作字典的内容而无需复制整个数据集。 #### 示例代码展示 下面是一些常见的字典操作实例: ```python # 初始化字典 sample_dict = { 'apple': 4, 'banana': 6, 'orange': 8 } # 获取所有的key,value,item视图 keys_view = sample_dict.keys() values_view = sample_dict.values() items_view = sample_dict.items() print("Keys View:", keys_view) print("Values View:", values_view) print("Items View:", items_view) for k, v in items_view: print(f"{k}: {v}") # 动态修改原字典并观察视图变化 sample_dict['grape'] = 10 print("\nAfter adding grape:") print("Updated Keys View:", list(keys_view)) print("Updated Values View:", list(values_view)) print("Updated Items View:", list(items_view)) # 删除某个项目后的效果 del sample_dict['apple'] print("\nAfter deleting apple:") print("Final Keys View:", list(keys_view)) print("Final Values View:", list(values_view)) print("Final Items View:", list(items_view)) ``` 上述代码展示了如何利用字典及其视图特性来进行各种实用的操作,并且体现了字典视图随源字典变动自动更新的特点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值