当我尝试使用hibernate postgresql获取列表时,我收到以下错误
MyObject:
@Entity
@Table(name = "my_objects", schema = "public")
public class MyObject implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "my_object_id", unique = true, nullable = false)
@GeneratedValue
private long myObjectId;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "owner_id")
private User user;
@Column(name = "scheme_zone_name", length = 150)
private String schemeZoneName;
@Temporal(TemporalType.DATE)
@Column(name = "create_dt", length = 13)
private Date createDt;
@Column(name = "comment", length = 250)
private String comment;
public MyObject() {
}
public MyObject(long myObjectId) {
this.myObjectId = myObjectId;
}
public MyObject(long myObjectId, User user, String myObjectName, Date createDt, String) {
this.schemeZoneId = schemeZoneId;
this.user = user;
this.myObjectName = myObjectName;
this.createDt = createDt;
this.comment = comment;
} ....getters/setters .....}
用户:
@Entity
@Table(name = "dp_users", schema = "public")
public class User implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "user_id", unique = true, nullable = false, precision = 5, scale = 0)
@GeneratedValue
private int userId;
@Column(name = "user_login", nullable = false, length = 25)
private String userLogin;
@Column(name = "user_password", nullable = false, length = 25)
private String userPassword;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user")
private Set<MyObject> myObjects = new HashSet(0);
public User() {
}
public User(int userId, String userLogin, String userPassword) {
this.userId = userId;
this.userLogin = userLogin;
this.userPassword = userPassword;
}
public User(int userId, String userLogin, String userPassword, Set<MyObject> myObjects) {
this.userId = userId;
this.userLogin = userLogin;
this.userPassword = userPassword;
this.myObjects = myObjects;
} ....getters/setters .....}
首先,我获取用户并将其保存在用户对象中:
public User login(String login, String password) {
Session session = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
return (User) session.createCriteria(User.class)
.add(Restrictions.eq("userLogin", login).ignoreCase())
.add(Restrictions.eq("userPassword", password)).uniqueResult();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
return null;
}
然后,当我试图通过用户获取MyObject的列表时:
public List<MyObject> getMyObjects(User user) throws SQLException {
List<MyObject> o = null;
Session session = null;
try {
session = HibernateUtil.getSessionFactory().openSession();
o = session.createCriteria(MyObject.class)
.add(Restrictions.eq("user", user))
.addOrder(Order.asc("myObjectName"))
.list();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (session != null && session.isOpen()) {
session.close();
}
}
return o;
}
我收到
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: cc.testProject.common.User
我做错了什么?
您应该使用同一个会话来检索所有实体。会话范围必须与您的工作单元匹配,不要为每个操作实例化它。
请参阅努力理解实体管理器的正确使用
我在我的项目中使用Spring引导和Spring数据,我有两个类: 第二类是: 增加任务的方法: 当我试图添加一个新任务时,它在Json对象上面给出了一个错误: {"出发":"fff","到达":"ffff","isFreeWayEnable": false,"车站":[{"id": 1},{"id": 2}]}
我有两个模型类,用户和问候如下。用户表中的外键(称呼_id)是可选的。为了在合并后立即刷新会话对象时保存用户对象,我得到以下错误信息。 对象引用未保存的临时实例-在刷新之前保存临时实例:com。实例模型打招呼 表中的数据称呼已经独立于用户表插入。当我试图保存salutation_id为空的用户对象时,它会抛出这个错误。 任何帮助都是值得的。 谢谢你的帮助。
问题内容: 使用Hibernate保存对象时收到以下错误 问题答案: 你应该在集合映射中包括如果使用xml)或(如果使用注释)。 发生这种情况是因为你的实体中有一个集合,并且该集合具有一个或多个数据库中不存在的项目。通过指定上述选项,你可以告诉hibernate在保存其父项时将它们保存到数据库中。
我对JPA和manytoone的关系感到困惑,我有一个类“Judiction”,它有很多“Judidget”,当我试图将一个Judidge实例存储到postgres db中时,它抛出错误消息如下: 判断类: 还有我的服务课: 在我的数据库中,我有判断表和用户表,我需要为多通关系创建一个作为判断用户的表吗?
我读了很多关于我的问题的文件,但建议不能解决我的问题,所以我被迫打开这个主题。 我的问题是,当我试图保存我的实体时,我遇到了以下错误。我添加了实体类。谢谢 保存代码 员工表 员工上传表
下面是代码: 我看到了很多帖子,但这并没有解决我的问题。感谢您的帮助。这里的RoleLookup是一个静态表。以下是例外: 组织。冬眠TransientObjectException:对象引用未保存的临时实例-在刷新之前保存临时实例:com。德国商业银行。清理CCP领域用户角色。roleLookup-