S2Dao.PHP5アノテーション
S2Dao.PHP5では、S2Daoのアノテーション方法において、定数アノテーションとコメントアノテーションのどちらかを記述できます。
定数アノテーションとコメントアノテーションの対応を下記に記載しています。
個々のアノテーションについての詳細は、S2Daoリファレンスを参照してください。
定数アノテーション |
コメントアノテーション |
ID |
@Id |
RELNO |
@Relation(relationNo = x) |
RELKEYS |
@Relation(relationNo = x, relationKey = "key") |
TABLE |
@Bean(table = "TABLE") |
COLUMN |
@Column |
VERSION_NO_PROPERTY |
@VersionNoProperty
(@Beansアノテーションが必須です。)
|
TIMESTAMP_PROPERTY |
@TimestampProperty
(@Beansアノテーションが必須です。)
|
NO_PERSISTENT_PROPS |
@NoPersistentProperty
(@Beansアノテーションが必須です。) |
定数アノテーション |
コメントアノテーション |
BEAN |
@Dao |
ARGS |
@Arguments |
QUERY |
@Query |
NO_PERSISTENT_PROPS |
@NoPersistentProperty |
PERSISTENT_PROPS |
@PersistentProperty |
SQL |
@Sql |
PROCEDURE |
@Procedure |
定数アノテーション |
コメントアノテーション |
List |
@return list |
Array |
@return array |
Yaml |
@return yaml |
Json |
@return json |
Obj |
@return object |
Map |
@return map |
IDアノテーションは、@Idアノテーションに記述します。
const id_ID = "sequence, sequenceName=myseq";
/**
* @Id(value = sequence, sequenceName = "myseq")
*/
private $id;
RELNO, RELKEYSアノテーションは、@Relationアノテーションに記述します。
const department_RELNO = 0;
const department_RELKEYS = "DEPTNUM:DEPTNO";
/**
* @Relation(relationNo = 0, relationKey = "DEPTNUM:DEPTNO")
*/
private $department;
TABLEアノテーションは、@Beanアノテーションに記述します。
const TABLE = "DEPT";
/**
* @Bean(table=DEPT)
*/
class Department implements Serializable {
}
COLUMNアノテーションは、@Columnアノテーションに記述します。
const timestamp_COLUMN = "tstamp";
/**
* @Column("tstamp")
*/
private $timestamp;
VERSION_NO_PROPERTYアノテーションは、@VersionNoPropertyアノテーションに記述します。
コメントアノテーションを行う場合は@Beanアノテーションが必須となります。
const VERSION_NO_PROPERTY = "myVersionNo";
/**
* @Bean(table=DEPT)
* @VersionNoProperty = "myVersionNo")
*/
class Foo {
}
TIMESTAMP_PROPERTYアノテーションは、@TimestampPropertyアノテーションに記述します。
コメントアノテーションを行う場合は@Beanアノテーションが必須となります。
const TIMESTAMP_PROPERTY = "myTimestamp";
/**
* @Bean(table=DEPT)
* @TimeStampProperty = "myTimestamp")
*/
class Foo {
}
NO_PERSISTENT_PROPSアノテーションは、@NoPersistentPropertyアノテーションに記述します。
コメントアノテーションを行う場合は@Beanアノテーションが必須となります。
const NO_PERSISTENT_PROPS = "fooProperty";
/**
* @Bean(table=DEPT)
* @NoPersistentProperty(fooProperty)
*/
class Foo {
}
BEANアノテーションは、@Daoアノテーションに記述します。
const BEAN = "Employee";
/**
* @Dao(bean=Employee)
*/
interface DepartmentDao {
}
ARGSアノテーションは、@Argumentsアノテーションに記述します。
また、ARGSアノテーションは省略可能です。(省略した場合自動的に設定されます。)
const getEmployees_ARGS = "ename";
/**
* @Arguments("ename")
*/
public function getEmployees($ename) {
}
QUERYアノテーションは、@Queryアノテーションに記述します。
const getAaa_QUERY = "A > B";
/**
* @Query("A > B")
*/
public function getAaa($id);
NO_PERSISTENT_PROPSアノテーションは、@NoPersistentPropertyアノテーションに記述します。
const insert_NO_PERSISTENT_PROPS = "sal, comm";
/**
* @NoPersistentProperty("sal, comm")
*/
public function insert(Employee $employee);
PERSISTENT_PROPSアノテーションは、@PersistentPropertyアノテーションに記述します。
const insert_PERSISTENT_PROPS = "deptno";
/**
* @PersistentProperty("deptno")
*/
public function insert(Employee $employee);
SQLアノテーションは、@Sqlアノテーションに記述します。
const getCount_SQL = "SELECT COUNT(*) FROM emp";
/**
* @Sql("SELECT count(*) FROM emp")
*/
public function getCount();
PROCEDUREアノテーションは、@Procedureアノテーションに記述します。
const getSalesTax_PROCEDURE = "SALES_TAX";
/**
* @Procedure("SALES_TAX")
*/
public function getSalesTax($subtotal);
Methodアノテーションはメソッドの戻り値をアノテーションによって指定することができます。
Methodアノテーションでの定数アノテーションはメソッド名そのものを示し、コメントアノテーションはメソッドコメントを示します。
Listアノテーションはメソッド名の最後をList、もしくは@return listで記述します。
public function getFooList($foo);
/**
* @return list
*/
public function getFoo($foo);
Arrayアノテーションはメソッド名の最後をArray、もしくは@return arrayで記述します。
public function getFooArray($foo);
/**
* @return array
*/
public function getFoo($foo);
Yamlアノテーションはメソッド名の最後をYaml、もしくは@return yamlで記述します。
public function getFooYaml($foo);
/**
* @return yaml
*/
public function getFoo($foo);
Jsonアノテーションはメソッド名の最後をJson、もしくは@return jsonで記述します。
public function getFooJson($foo);
/**
* @return json
*/
public function getFoo($foo);
Objectアノテーションはメソッド名の最後をObj、もしくは@return objectで記述します。
public function getFooObj($foo);
/**
* @return object
*/
public function getFoo($foo);
Mapアノテーションはメソッド名の最後をMap、もしくは@return mapで記述します。
public function getFooMap($foo);
/**
* @return map
*/
public function getFoo($foo);
|