对瞬态变量注解@Basic
我有一个 POJO 类,其中包括:
- 持久属性,
- 瞬态特性。
在编写 HQL 时,我考虑了两者:持久属性和瞬态属性。 即 HQL 像 select persist_properties,transient_prop from Pojo_classname
是正确的吗?
我可以为瞬态变量编写 @Basic
注解吗?
I am having a POJO class which consists of:
- persistent properties,
- transient properties.
While writing HQL I considered both: persistent and transient properties.
I.e. HQL like select persistent_properties,transient_prop from Pojo_classname
is it correct?
Can I write @Basic
annotation to transient variables?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,这是不正确的。 HQL 查询转换为 SQL。
@Transient
属性不在数据库中,因此 SQL 查询将无法查询该属性。@Basic
和@Transient
是矛盾的。第一个告诉“这个属性是持久的”,第二个告诉“这个属性不是持久的”。如果您谈论的是 Java
transient
关键字,而不是@Transient
注释,那么可以查询transient
字段,并且用@Basic
注释。transient
关键字与持久性无关,只与对象的二进制序列化有关。No, it's not correct. A HQL query translates to SQL. An
@Transient
property is not in the database, so the SQL query won't be able to query over this property.@Basic
and@Transient
are contradictory. The first one tells "this property is persistent" and the second one tells "This property is not persistent".If you're talking about the Java
transient
keyword, and not about the@Transient
annotation, then yes, atransient
field may be queried and annotated with@Basic
. Thetransient
keyword has nothing to do with persistence, only with binary serialization of the object.