在 ClusterJ 中(如在 JPA 中),注释用于描述接口如何映射到数据库中的表。带注释的界面如下所示:
@PersistenceCapable(table="employee")
@Index(name="idx_uhash")
public interface Employee {
@PrimaryKey
int getId();
void setId(int id);
String getFirst();
void setFirst(String first);
String getLast();
void setLast(String last);
@Column(name="municipality")
@Index(name="idx_municipality")
String getCity();
void setCity(String city);
Date getStarted();
void setStarted(Date date);
Date getEnded();
void setEnded(Date date);
Integer getDepartment();
void setDepartment(Integer department);
}
此界面映射七列:id
、
first
、last
、
municipality
started
、
ended
和department
。注释
@PersistenceCapable(table="employee")
用于让 ClusterJ 知道要映射
Employee
到哪个数据库表(在本例中为
employee
表)。使用
@Column
注释是因为
和方法city
隐含的属性名
与映射的列名不同
。注释
并
通知 ClusterJ 关于数据库表中的索引。
getCity()
setCity()
municipality
@PrimaryKey
@Index
此接口的实现由 ClusterJ 在运行时动态创建。当
newInstance()
方法被调用时,ClusterJ 为该Employee
接口创建一个实现类;此类将值存储在内部对象数组中。
ClusterJ 不需要为每个属性都添加注解。ClusterJ 自动检测表的主键;虽然在 ClusterJ 中有一个注释允许用户描述表的主键(参见前面的示例),但在指定时,它目前会被忽略。(此注释的预期用途是从域对象模型接口生成模式,但目前尚不支持。)
注释本身必须从 ClusterJ API 导入。它们可以在 package 中找到
com.mysql.clusterj.annotation
,并且可以像这样导入:
import com.mysql.clusterj.annotation.Column;
import com.mysql.clusterj.annotation.Index;
import com.mysql.clusterj.annotation.PersistenceCapable;
import com.mysql.clusterj.annotation.PrimaryKey;