我有一个这样的课程:
import java.io.*;
import java.util.*;
public class Contact_Info_Entry implements Serializable
{
public static final long serialVersionUID=26362862L;
String Contact_Id,First_Name="",Last_Name="",Company_Name="",Branch_Name="",Address_1="",Address_2="",City="",State="",Zip="",Country="",E_Mail="",Phone;
int I_1,I_2;
float F_1,F_2;
boolean B_1,B_2;
GregorianCalendar Date_1, Date_2;
Vector<String> A_Vector=new Vector<String>();
public Contact_Info_Entry() { }
......
}
如果我想将它翻译成JDO的类,我是否需要自己定义每个字段,或者我可以一次分组吗?
例如,我必须这样做:
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Contact_Info_Entry implements Serializable
{
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
public static final long serialVersionUID=26362862L;
@Persistent
String Contact_Id;
@Persistent
String First_Name;
@Persistent
String Last_Name;
......
@Persistent
int I_1;
@Persistent
int I_2;
...
@Persistent
float F_1;
...
@Persistent
boolean B_1;
@Persistent
boolean B_2;
@Persistent
GregorianCalendar Date_1;
...
@Persistent
Vector<String> A_Vector=new Vector<String>();
public Contact_Info_Entry() { }
......
}
或者我可以在这样的时间做一组:
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Contact_Info_Entry implements Serializable
{
@PrimaryKey
@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
public static final long serialVersionUID=26362862L;
@Persistent
String Contact_Id,First_Name,Last_Name="";
......
@Persistent
int I_1=0,I_2=1;
...
@Persistent
float F_1;
...
@Persistent
boolean B_1,B_2;
@Persistent
GregorianCalendar Date_1;
...
@Persistent
Vector<String> A_Vector=new Vector<String>();
public Contact_Info_Entry() { }
......
}
或者我可以像这样一起跳过“@Persistent”:
import java.io.*;
import java.util.*;
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Contact_Info_Entry implements Serializable
{
public static final long serialVersionUID=26362862L;
String Contact_Id,First_Name="",Last_Name="",Company_Name="",Branch_Name="",Address_1="",Address_2="",City="",State="",Zip="",Country="",
E_Mail="",Phone;
int I_1,I_2;
float F_1,F_2;
boolean B_1,B_2;
GregorianCalendar Date_1, Date_2;
Vector<String> A_Vector=new Vector<String>();
public Contact_Info_Entry() { }
......
}
哪个是正确的?
谢
答案 0 :(得分:1)
您不需要使用@Persistent来注释每个字段。绝大多数类型(基元,它们的包装器,字符串等)默认是持久的。就像你的班级应该写的那样。读 http://www.datanucleus.org/products/accessplatform_1_1/jdo/types.html
您无法保留静态字段 http://www.datanucleus.org/products/accessplatform_1_1/jdo/fields_properties.html
谷歌对所有内容使用@Persistent的文档完全是误导性的
对于同一行上多个字段的声明以及注释是否适用于all,我假设编译器会将注释应用于该行的所有字段,但这与Java以及编译器如何实现注释而不是JDO特有的任何内容。