我有两个模型,一个用于存储用户详细信息,使用该Id,我试图将用户位置保存在另一个表中,该表使用用户的相同Id作为主键。
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(unique = true)
private String username;
@Column(unique=true)
private String email;
private String password;
private String Role;
@OneToOne(mappedBy = "user")
private UserLocation location;
//...constructors, getters and setters
}
@Entity
public class UserLocation {
@Id
private Long id;
@OneToOne(cascade = CascadeType.MERGE)
@JoinColumn(name="id")
@MapsId
private User user;
private Point location;
//...constructors, getters and setters
}
@SpringBootApplication
public class ContainmentZoneAlertApp implements CommandLineRunner {
@Autowired
private UserlocationRepository userLocRepo;
@Autowired
private UserRepository userRepo;
public static void main(String[] args) {
SpringApplication.run(ContainmentZoneAlertApp.class, args);
}
@Override
public void run(String... args) throws Exception {
UserLocation userLocation = new UserLocation();
Geometry geometry = GeometryUtil.wktToGeometry(String.format("POINT (13.0827 80.2707)"));
//GeometryUtil is a utility class
User user = new User(null,"user 3","user3@gmail.com","hello123","user");
user = userRepo.save(user);
userLocation.setUser(user);
userLocation.setLocation((Point)geometry);
userLocRepo.save(userLocation);
}
}
caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: com.saravanan.models.User
为什么我会出现这个错误?坚持是什么意思?我正在使用MySQL数据库(&I)
您必须确保两个保存操作都在同一个事务中,否则第一个实体被分离,这将导致此异常。
因此只需将@transactional
添加到run方法:
@Transactional
@Override
public void run(String... args) throws Exception {
当试图在web应用程序上创建课程实体实例时,我们遇到以下错误。这是一个JHipster应用程序完整的错误日志,下面是,但主要错误是 更新的代码:
我有如下雇员类 当我调用来persisting时,我会得到以下错误
我在Tomcat 7.0.32服务器上运行Java7.0.11。 你知道吗?
JPA和Hibernate的新手,所以请耐心等待,因为我试图绘制一整张图片。所以我有两个具有双向关系的Java对象。员工类是拥有类,部门类是关系的反面。一个部门可以有许多员工,一个员工只能有一个部门。我分配了employee_id作为员工实体的主键,department_id作为部门实体的主键。我还想在员工类中使用department_id作为外键。 员工类 部门类 我用来生成两个对象并将它们保存
我是Hibernate的新手,我需要帮助。 我有一个名为Kasa的表,它有3个属性-id、address和account\u id。在我的表中有12行。我想使用Hibernate对此进行映射,并使用Java添加新的映射,所以我这样做了: 我也有能手和二传手,但不需要复制。 现在我想在我的数据库中添加新行,如下所示: 我得到这样的错误:javax.persistence.PeristenceExce
请告诉我如何解决这个问题。更多信息请评论