@transient 注解注解,什么意思?
2016-11-25 09:52
489 查看
该注解,是Hibernate、morphia等框架的注解。
1)Hibernate中:
实体类中使用了@Table注解后,想要添加表中不存在字段,就要使用@Transient这个注解了。在网上找的方法是要将这个注解添加到自定义字段的get方法上,这样做了之后程序报错,最后试了将该注解添加到定义该字段的头部即可,例如:
即放在实体类的成员变量上部。
[java] view
plain copy
@Transient
private String str;
2)morphia中:
根据我之前的文章知道,mongodb数据库是没有数据库字段的。但就不存在”想要添加表中不存在字段,就要使用@Transient这个注解了“的问题,那为什么还是用@Transient?
答:
因为使用morphia框架,一般情况下,保存原始和基本类型的属性到Mongo中,你不必为他们添加任何注解。但是如果你不想该实体类中的某个字段(如
1)Hibernate中:
实体类中使用了@Table注解后,想要添加表中不存在字段,就要使用@Transient这个注解了。在网上找的方法是要将这个注解添加到自定义字段的get方法上,这样做了之后程序报错,最后试了将该注解添加到定义该字段的头部即可,例如:
即放在实体类的成员变量上部。
[java] view
plain copy
@Transient
private String str;
2)morphia中:
根据我之前的文章知道,mongodb数据库是没有数据库字段的。但就不存在”想要添加表中不存在字段,就要使用@Transient这个注解了“的问题,那为什么还是用@Transient?
答:
因为使用morphia框架,一般情况下,保存原始和基本类型的属性到Mongo中,你不必为他们添加任何注解。但是如果你不想该实体类中的某个字段(如
//这个是常量。引入这个常量,是为了:1)直接调用即可,不用每次都输入“telNum”。2)便于代码的可读性,如果你在程序中输入“telNum”别人不明白是什么,你固定写到某个位置,大家一看就明白了 3)也可以防止别写程序时将“telNum”敲错,因为使用"对象名.成员变量名"输入“.”的时候会有可能代码提示,选择即可,这样是不可能出错的。
public final static String telNum= "telNum";
//类似于jf工程中,如下的用法
//public class ProjectContants { //public static String CURRENT_USER = "CURRENT_USER"; //public static String CURRENT_ORGAN = "CURRENT_ORGAN"; //public static String CURRENT_PROJECT = "CURRENT_PROJECT"; //public static String RANDOM_IMAGE_CODE="RANDOM_IMAGE_CODE"; //}
)作为document存入mongodb数据库中,那么你就要加上@Transient。不然,当你执行mongodb的findAndModify等新增、修改操作时,你不想写入mongodb的某个字段,也写入mongodb数据库中了。
http://blog.csdn.net/z69183787/article/details/52942124
因为使用morphia框架,一般情况下,保存原始和基本类型的属性到Mongo中,你不必为他们添加任何注解: [java] view plain copy private int myInt; private Date myDate; private List<String> myStrings; private String[] stringArray; 默认情况下,Morphia将会试着映射所有支持的基本和原始类型到Mongo,包括这些类型的数组。 MongoDB仅仅有以下数据类型: •Integer(32位有符号值) •Long(64有符号值) •Double(64位IEEE745浮点值) •String (字符串) 这里有些有价值的转换: •float → double •byte → int •short → int •char → String 并且,依赖于你的模型中存在的类型和数据库将会试着自动为你转换。我的意思是,因为在MongoDB数据库中只存在三种数字类型(32/64有符号, 64位FP)这将相当容易转换。下面的列表为当前什么样的基本和原始类型可以被保存: •enum(在Mongo中作为String保存) •Java.util.Date(在Mongo中保存为从新纪元UTC的毫秒数) •java.util.Locale(作为字符串保存) •com.mongodb.DBRef •com.mongodb.ObjectId 正如我我们上面的例子所示,Morphia还支持java.util.List,java.util.Set和java.util.Map容器,和任何支持的原始类型的数组。如果你想把一个属性排除映射到Mongo中, 你可以使用@Transient注解: [java] view plain copy import com.google.code.morphia.annotations.Transient; @Transient private int myTransientInt; 默认情况下,Morphia把属性名作为Mongo中的字段名。这个可以通过@Property注解进行修改,指定一个名称。 [java] view plain copy import com.google.code.morphia.annotations.Property; @Property("my_integer") private int myInt; //在MongoDB中为my_integer |
相关文章推荐
- @SuppressWarnings注解什么意思
- spring中注解属性scope的prototype是什么意思?
- spring注解中@component是什么意思
- transient、volatile、strictfp关键字是什么意思?
- 在JAVA中注解@SuppressWarnings("deprecation")的Deprecation是什么意思
- SQL SERVER 数据库名称..两个点这是什么意思?
- 存根类(stub) 是什么意思?有什么作用?
- LIBSVM:svmpredict函数quiet mode是什么意思?
- margin:0 auto 表示什么意思??
- User-Agent是什么意思捏?
- 硬盘的“NORMAL”“LBA”“LARGE”模式各是什么意思
- Oracle 中的SID是什么意思?有什么作用?
- ios 中armv7,armv7s,arm64,i386,x86_64是什么意思
- CMS是什么意思?
- #ifdef __cplusplus 是什么意思?
- 心电是什么意思?
- ”TCP连接“究竟是什么意思?
- 一不小心搜到几个有趣的英文句子,来猜猜它们的意思是什么
- 打开Word时出现“The setup controller has encountered a problem during install. Please ...”什么意思
- 汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp这些都是什么意思啊? [