@Transient not working in hibernate

不打扰是莪最后的温柔 提交于 2020-01-11 08:49:09

问题


I am using hibernate 4.1.9. My code is

@Transient
private String ldapIdTemp;

package is

import javax.persistence.Transient;

Still in hibernate query, it is not working and putting the attribute in the query.

part of query snippet (assetasset0_.ldapIdTemp as ldapIdTemp16_0_, )

I am not sure what I am doing wrong.


回答1:


Can you try creating setter and getter for the field and annotate the get method with @Transient, as follows:

private String ldapIdTemp;

 @Transient
 public String getLdapIdTemp() {
    return ldapIdTemp;
 }

 public void setLdapIdTemp(String ldapIdTemp) {
    this.ldapIdTemp = ldapIdTemp;
 }



回答2:


Much depends on how you "integrated" this field in your Entity or class hierarchy. Moreover, field vs. property-access could cause an issue for your setting. See this post for a detailed explanation.

In your case, I could imagine that you either:

  1. mixed field and property-access in your entity inheritance strategy
  2. use XML-based configuration for Hibernate in your application.

In both cases the JPA 2.0/2.1 specification clearly states in Section 2.3.1:

It is an error if a default access type cannot be determined and an access type is not explicitly specified by means of annotations or the XML descriptor. The behavior of applications that mix the placement of annotations on fields and properties within an entity hierarchy without explicitly specifying the Access annotation is undefined.

Please check that your persistent Entity classes have either field OR property-based annotations.




回答3:


Check the @Transient annotation fully qualified name. It can be from either, org.springframework.data.annotation.Transient or javax.persistence.Transient.

Try to use javax.persistence.Transient.



来源:https://stackoverflow.com/questions/32992952/transient-not-working-in-hibernate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!