В моем 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;
}