文章目录
1、下列属性中,不属于<association>元素属性的是()。
A、property
B、select
C、ofType
D、autoMapping
正确答案:C
ofType是<collection>元素特有的属性
2、下列关于<foreach>元素的collection属性的说法正确的是()。
A、collection属性可有可无
B、collection属性值在任何情况下的取值都是一样的
C、collection属性值首字母要小写
D、collection属性值首字母要大写
正确答案:C
无解析
3、下面关于Java对象之间的关联关系描述正确的是()。
A、一对一的关系就是在本类和对方类中定义同一个类型的对象
B、一对多的关系:就是一个A类类型对应多个B类类型的情况
C、多对多的关系只需要在一方的类中引入另一方类型的集合
D、多对多关联关系需要在本类中引入本类的集合
正确答案:B
A:一对一关系就是在本类中定义与之关联的类的对象作为属性
C、D:多对多关系就是在两个相互关联的类中,都可以定义多个与之关联的类的对象
4、在Java中,以下有关类的关联关系描述错误的是()。
A、在Java中,通过对象也可以进行关系描述,他们分别为一对一、一对多、多对一和多对多
B、一对一的关系就是在本类中定义对方类型的对象
C、一对多的关系就是一个A类类型对应多个B类类型的情况,需要在A类中以集合的方式引入B类类型的对象,在B类中定义A类类型的属性
D、多对多的关系:在A类中定义B类类型的集合,在B类中定义A类类型的集合。
正确答案:A
在Java中,通过对象也可以进行关系描述,有一对一、一对多和多对多,没有多对一
5、下列关于<collection>元素的描述正确的是()。
A、MyBatis就是通过<collection>元素来处理一对多关联关系的
B、<collection>元素的属性与<association>元素完全相同
C、ofType属性与javaType属性对应,它用于指定实体对象中所有属性所包含的元素类型
D、<collection >元素只能使用嵌套查询方式
正确答案:A
B:<collection>元素的属性大部分与<association>元素相同,但其还包含一个特殊属性ofType
C:ofType属性与javaType属性对应,它用于指定实体类对象中集合类属性所包含的元素的类型
D:<collection>元素也是<resultMap>元素的子元素,它也有嵌套查询和嵌套结果两种配置方式
6、以下关于<association>元素中常用属性说法错误的是()。
A、property指定映射到的实体类对象属性,与表字段一一对应
B、column指定表中对应的字段
C、fetchType指定在关联查询时是否启用延迟加载,默认值为eager
D、javaType指定映射到实体对象属性的类型
正确答案:C
fetchType属性有lazy和eager两个属性值,默认值为lazy(即默认关联映射延迟加载)
7、下列关于MyBatis映射文件中加载关联关系对象的方式说法正确的是()。
A、嵌套结果是指通过执行另外一条SQL映射语句来返回预期的复杂类型
B、嵌套结果是使用嵌套结果映射来处理重复的联合结果的子集
C、嵌套查询是使用嵌套结果映射来处理重复的联合结果的子集
D、以上说法都正确
正确答案:B
无解析
8、在关系型数据库中,多表之间的关联关系主要包括()。
A、一对一
B、一对多
C、多对一
D、多对多
正确答案:A,B,C,D
以上说法都正确
9、下列属性中,属于<association>和<collection>元素共有的属性是()。
A、property
B、select
C、ofType
D、autoMapping
正确答案:A,B,D
ofType是<collection>元素特有的属性
10、<association>元素只有一种配置方式,即嵌套结果方式。
正确答案:错
<association>元素有两种嵌套方式,一种是嵌套查询方式,一种是嵌套结果方式
11、在MyBatis中,通过<association>元素可以处理一对多关联关系。
正确答案:错
<association>元素处理的是一对一关联关系,<collection>元素可以处理一对多关联关系
12、当表中的列名与对应对象的属性名称完全一致时,在查询映射文件中可以不使用resultMap属性。
正确答案:对
无解析
13、在数据库中,多对多的关联关系通常使用一个中间表来维护。
正确答案:对
无解析
14、MyBatis中,默认开启了延迟加载。
正确答案:错
MyBatis默认没有开启延迟加载,需要在核心配置文件mybatis-config.xml中的<settings>元素内进行配置
15、Java对象关联映射关系中,一对一就是在本类中定义与之关联的类的对象作为属性。
正确答案:对
无解析
16、在使用MyBatis嵌套查询方式进行MyBatis关联映射查询时,使用MyBatis的延迟加载在一定程度上可以降低运行消耗并提高查询效率。
正确答案:对
无解析
17、关系型数据库的关联关系中,在“一”的一方,添加“多”的一方的主键作为外键。
正确答案:错
应该是在“多”的一方,添加“一”的一方的主键作为外键
18、MyBatis中多对多关联映射同样有嵌套查询和嵌套结果两种关联方式。
正确答案:对
无解析
19、在MyBatis中,使用_________元素可以处理一对多关联关系。
<collection>
20、在MyBatis中,通过_________元素可以处理一对一关联关系。
<association>
21、在使用<association>元素时,它的fetchType属性有_________和eager两个属性值。
lazy
22、<collection>元素的属性中,用于指定实体类对象中集合类属性所包含的元素类型的是_________。
ofType
23、<association>元素的_________属性用于指定引入嵌套查询的子SQL语句。
select
24、在关系型数据库中,表与表之间存在着三种关联映射关系,分别为一对一、一对多和_________。
多对多
25、请简述MyBatis中延迟加载的配置。
MyBatis默认没有开启延迟加载,需要在核心配置文件中的元素内将延迟加载开关lazyLoadingEnabled设置为true,并将积极加载开关aggressiveLazyLoading设置为false。由于MyBatis关联映射的元素和元素中都已默认配置了延迟加载属性,所以不需要配置。
26、请简述<collection>子元素的常用属性及说明。
property:用于指定映射到的实体类对象的属性,与表字段一 一对应
column:用于指定表中对应的字段
javaType:用于指定映射到实体对象的属性的类型
jdbcType:用于指定数据表中对应字段的类型
fetchType:用于指定在关联查询时是否启动延迟加载。有lazy和eager两个属性值,默认值为lazy
select:用于指定引入嵌套查询的子SQL语句
autoMapping:用于指定是否自动映射
typeHandler:用于指定一个类型处理器
ofType:用于指定实体类对象中的集合类属性所包含的元素类型
如有错误,欢迎指正!!!
我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
我的问题的一个例子是体育游戏。一场体育比赛有两支球队,一支主队和一支客队。我的事件记录模型如下:classTeam"Team"has_one:away_team,:class_name=>"Team"end我希望能够通过游戏访问一个团队,例如:Game.find(1).home_team但我收到一个单元化常量错误:Game::team。谁能告诉我我做错了什么?谢谢, 最佳答案 如果Gamehas_one:team那么Rails假设您的teams表有一个game_id列。不过,您想要的是games表有一个team_id列,在这种情况下
目前,Itembelongs_toCompany和has_manyItemVariants。我正在尝试使用嵌套的fields_for通过Item表单添加ItemVariant字段,但是使用:item_variants不显示该表单。只有当我使用单数时才会显示。我检查了我的关联,它们似乎是正确的,这可能与嵌套在公司下的项目有关,还是我遗漏了其他东西?提前致谢。注意:下面的代码片段中省略了不相关的代码。编辑:不知道这是否相关,但我正在使用CanCan进行身份验证。routes.rbresources:companiesdoresources:itemsenditem.rbclassItemi
我认为我的问题最好用一个例子来描述。假设我有一个名为“Thing”的简单模型,它有一些简单数据类型的属性。像...Thing-foo:string-goo:string-bar:int这并不难。数据库表将包含具有这三个属性的三列,我可以使用@thing.foo或@thing.bar之类的东西访问它们。但我要解决的问题是当“foo”或“goo”不再包含在简单数据类型中时会发生什么?假设foo和goo代表相同类型的对象。也就是说,它们都是“Whazit”的实例,只是数据不同。所以现在事情可能看起来像这样......Thing-bar:int但是现在有一个新的模型叫做“Whazit”,看起来
我正在尝试按Rails相关模型中的字段进行排序。我研究的所有解决方案都没有解决如果相关模型被另一个参数过滤?元素模型classItem相关模型:classPriority我正在使用where子句检索项目:@items=Item.where('company_id=?andapproved=?',@company.id,true).all我需要按相关表格中的“位置”列进行排序。问题在于,在优先级模型中,一个项目可能会被多家公司列出。因此,这些职位取决于他们拥有的company_id。当我显示项目时,它是针对一个公司的,按公司内的职位排序。完成此任务的正确方法是什么?感谢您的帮助。PS-我
我想获取主题名称与搜索关键字匹配的所有配置文件。现在我正在加载所有配置文件。我需要知道如何实现它。非常感谢任何帮助。配置文件.rbhas_many:categorizationshas_many:subjects,through::categorizations主题.rbhas_many:categorizationshas_many:profiles,through::categorizations分类.rbbelongs_to:profilebelongs_to:subjectviews/search/index.html.erb#searchform'get'do%>nil%>#
如果names为nil,则以下中断。我怎样才能让这个map只有在它不是nil时才执行?self.topics=names.split(",").mapdo|n|Topic.where(name:n.strip).first_or_create!end 最佳答案 其他几个选项:选项1(在其上执行map时检查split的结果):names_list=names.try(:split,",")self.topics=names_list.mapdo|n|Topic.where(name:n.strip).first_or_create!e
我有一个非常简单的Controller来管理我的Rails应用程序中的静态页面:classPagesController我怎样才能让View模板返回它自己的名字,这样我就可以做这样的事情:#pricing.html.erb#-->"Pricing"感谢您的帮助。 最佳答案 4.3RoutingParametersTheparamshashwillalwayscontainthe:controllerand:actionkeys,butyoushouldusethemethodscontroller_nameandaction_nam
我使用的是遗留数据库,所以我无法控制数据模型。他们使用了很多多态链接/连接表,就像这样createtableperson(per_ident,name,...)createtableperson_links(per_ident,obj_name,obj_r_ident)createtablereport(rep_ident,name,...)其中obj_name是表名,obj_r_ident是标识符。因此链接的报告将按如下方式插入:insertintoperson(1,...)insertintoreport(1,...)insertintoreport(2,...)insertint