当前位置:网站首页>Attribute keywords ondelete, private, readonly, required
Attribute keywords ondelete, private, readonly, required
2022-07-07 14:30:00 【User 7741497】
The first 105 Chapter Attribute keyword - OnDelete
Specify the action to be taken in the current table when deleting related objects . This keyword is only applicable to the cardinality Cardinality
Designated as “ Father ” or “ One ” Relationship properties of . Its use is invalid in all other contexts .
usage
To specify the action to be taken in the current table when deleting related objects , Please use the following syntax :
Relationship relname As classname [ Cardinality = cardinality, Inverse = inverse, OnDelete = ondelete ];
among ondelete
Is one of the following values . In this discussion , Related records are records or objects belonging to the other party of the relationship , A reference record is a record or object of the party to the relationship .
cascade
cascade — When deleting related records , The reference records in this table will also be deleted .noaction
No operation — When trying to delete related records , Attempts will fail .setdefault
— When deleting related records , The reference records in this table will be set to their default values .setnull
— When deleting related records , The reference records in this table will be set tonull
.
Detailed explanation
This keyword defines the reference operation that occurs when a record is deleted at the other end of the relationship .
Default
If you ignore this keyword , be :
- about
Cardinality
Cardinality is the parent relationship ,OnDelete
It's cascading . in other words , When deleting the parent record , By default , The associated child record will be deleted . - For cardinality 1 The relationship between ,
OnDelete
bynoaction
. in other words , When trying to delete “ One ” When recording , By default , If another table has any records pointing to it , Try and fail .
Example
Class MyApp.Employee Extends %Persistent {
...
Relationship Employer As MyApp.Company [ Cardinality = one, Inverse = Employees, OnDelete = cascade ];
}
This example shows the one to many relationship between the company and employees . As shown in the figure ,Cardinality
It means that the company is related “one”
, and OnDelete
Indicates the impact of deleting the company on its employees . because OnDelete
The value of is cascade
, When deleting a company , Its effect is cascading , Employees will also be deleted .
The first 106 Chapter Attribute keyword - Private
Specify whether the property is private ( Can only be used by methods of this class or its subclasses ).
usage
To specify that the property is private , Please use the following syntax :
Property name As classname [ Private ];
otherwise , Ignore the keyword or Not
Put before the keyword .
Detailed explanation
Private class members can only be represented by this class ( Or its subclass ) The method of using .
Private properties are not displayed in directory information , And not by SELECT *
Query returned . however , Can be in SQL Explicitly reference and use private attributes in queries .
A subclass inherits Private
The value of the keyword , It cannot be rewritten .
stay IRIS in , Private properties are always inherited , And visible to subclasses of classes that define attributes ; Other languages often call these protected properties .
Default
If you omit this keyword , Then this property is not private .
The first 107 Chapter Attribute keyword - ReadOnly
The specified attribute is read-only , This limits the way its value is set .
usage
To specify that the attribute is read-only , Please use the following syntax :
Property name As classname [ ReadOnly ];
otherwise , Omit this keyword or put the word Not
Put in front of the keyword .
Important note : Do not use ReadOnly
keyword .
Detailed explanation
This keyword specifies that the value of this property cannot be set by using an object reference . If you use an object reference to set the value of a read-only property , for example :
set oref.Name = "newvalue"
Then it will appear at runtime <CANNOT SET THIS PROPERTY>
error .
Again , When the attribute is defined as read-only , Corresponding SQL The fields in the table are also defined as read-only . Cannot pass SQL Statement to explicitly insert or update read-only fields . Trying to do this will lead to SQL error ,SQLCODE
by -138
.
You can specify the value of the read-only attribute in the following ways :
- adopt
InitialExpression
keyword . - adopt
SQLComputeCode
keyword .
Please note that , These technologies have specific limitations .
Be careful
If the attribute is marked as read-only and required required
, Please pay attention to object access and SQL The following behavioral differences between visits :
- When saving objects , IRIS Properties will not be validated . It means IRIS Ignored the
Required
keyword . - When inserting or updating records , IRIS Yes, it will
Required
keyword .
Default
If you omit this keyword , Then the attribute is not read-only .
The first 108 Chapter Attribute keyword - Required
For persistence classes , The value of the specified attribute must be given a value first , Then it can be stored to disk . For enabled XML
Class , It is necessary to specify the element to which the attribute is mapped .
usage
To specify attributes is required required
Of , Please use the following syntax :
Property name As classname [ Required ];
otherwise , Omit this keyword or put the word Not
Put in front of the keyword .
Detailed explanation
For persistent classes , This keyword specifies that before the containing object can be stored on disk , Attribute must be given a value ; If the attribute has no value , An error will occur .
- If the property is of type
%Stream
, Then the stream cannot be empty . in other words , If%IsNull()
Method returns 0, The flow attribute is considered to have a value . - For expansion
%XML.Adaptor
Class , This keyword affects the correspondingXML
framework . If the attribute is markedREQUIRED
, Then the corresponding element in the pattern does notminOccurs=“0”
, Therefore, it is considered necessary .
In a subclass , Optional attributes can be marked as required , But not vice versa .
Be careful
If the attribute is marked as read-only and required required
, Please pay attention to object access and SQL The following behavioral differences between visits :
- When saving objects , IRIS Properties will not be validated . It means IRIS Ignored the
Required
keyword . - When inserting or updating records , IRIS Yes, it will
Required
keyword .
Default
If you omit this keyword , The attribute is not required .
边栏推荐
- 属性关键字ServerOnly,SqlColumnNumber,SqlComputeCode,SqlComputed
- Mmkv use and principle
- ES日志报错赏析-maximum shards open
- 6、Electron无边框窗口和透明窗口 锁定模式 设置窗口图标
- Excuse me, why is it that there are no consumption messages in redis and they are all piled up in redis? Cerely is used.
- 最长上升子序列模型 AcWing 1012. 友好城市
- docker部署oracle
- Parsing of XML files
- Excuse me, as shown in the figure, the python cloud function prompt uses the pymysql module. What's the matter?
- Excuse me, when using Flink SQL sink data to Kafka, the execution is successful, but there is no number in Kafka
猜你喜欢
Beginner JSP
STM32CubeMX,68套组件,遵循10条开源协议
Notes de l'imprimante substance: paramètres pour les affichages Multi - écrans et multi - Résolutions
Horizontal of libsgm_ path_ Interpretation of aggregation program
最长上升子序列模型 AcWing 1012. 友好城市
The longest ascending subsequence model acwing 482 Chorus formation
华为云数据库DDS产品深度赋能
Internal sort - insert sort
今日睡眠质量记录78分
Multi merchant mall system function disassembly lecture 01 - Product Architecture
随机推荐
wpf dataGrid 实现单行某个数据变化 ui 界面随之响应
一文读懂数仓中的pg_stat
oracle 触发器实现级联更新
AWS学习笔记(三)
Is the spare money in your hand better to fry stocks or buy financial products?
js 获取当前时间 年月日,uniapp定位 小程序打开地图选择地点
一款你不容错过的Laravel后台管理扩展包 —— Voyager
Simple use of websocket
小米的芯片自研之路
NDK beginner's study (1)
Selenium库
PLC:自动纠正数据集噪声,来洗洗数据集吧 | ICLR 2021 Spotlight
课设之百万数据文档存取
常用数字信号编码之反向不归零码码、曼彻斯特编码、差分曼彻斯特编码
Vscode configuration uses pylint syntax checker
杭电oj2092 整数解
KITTI数据集简介与使用
Leetcode one question per day (636. exclusive time of functions)
libSGM的horizontal_path_aggregation程序解读
When FC connects to the database, do you have to use a custom domain name to access it outside?