EntityManager.find () или EntityManager.CreateQuery () несовместимы при получении данных - PullRequest
0 голосов
/ 28 февраля 2019

В моем hibernate 5.0 я использую EntityManager.find(class,id), и он выбирает объект на основе идентификатора, но это противоречиво, иногда это не выборка данных, а данные доступны в DB (MySql), я пытался с EntityMa,nager.CreateQuery("") также, но та же проблема, так как я отладил и обнаружил, что она не попадает в базу данных, я не могу выяснить причину.Ниже мой DAO and model

 @Override
public User getUserById(int userId)
{
    User user = null;
    try {
        logger.info("fetching user details of userid :"+userId);
        user = entityManager.find(User.class,userId);
    } catch (HibernateException e) {
        logger.error("Error finding user : " + e);
    }
    return user;
}

модель:

        @Entity @Table(name = "user", 
          uniqueConstraints=  @UniqueConstraint(columnNames={"email_id"})) 
         @JsonIgnoreProperties({  "hibernateLazyInitializer", "handler" }) 
           @XmlAccessorType(XmlAccessType.FIELD)
          @XmlRootElement(name = "user") 
         public class User implements Serializable {

        @Id     
        @GeneratedValue(strategy = GenerationType.AUTO, generator = "native")
        @GenericGenerator(name = "native", strategy = "native")     
        @Column(name = "user_id")   
        private int userId; 

        /** some more column and getter setter **/  

        //Mappings

        @JsonIgnore     
        @Access(AccessType.PROPERTY)
        @OneToMany(mappedBy = "userId", fetch = FetchType.EAGER)    
        private  Set<Contract_Reviewer> contract_Reviewer;      

        @ManyToOne(fetch = FetchType.EAGER,cascade = {CascadeType.ALL}, optional = false)
        @JoinColumn(name = "department_id")     
        private Department departments;
 }
...