标识符生成异常

时间:2017-06-07 07:16:28

标签: java mysql hibernate auto-increment pojo

我在标识符生成方面遇到了一些问题。我使用MySQL数据库。所以,我有两个实体:

@Entity
@Table(name = "users", catalog = "test1")
public class User {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name="id", unique=true, nullable=false, updatable=false)
  private Long id;
  private String username;
  private String password;
  private boolean enabled;
  @JsonBackReference
  private Set<UserRole> userRole = new HashSet<UserRole>(0);
  @OneToOne(cascade={CascadeType.ALL}, fetch = FetchType.LAZY, targetEntity = Utilisateur.class)
  @JoinColumn(name="userUtilisateur")
  @JsonManagedReference
  private Utilisateur userUtilisateur;
  /*.. getters and setters..*/ }

 @Entity
 @Table(name="utilisateur")
 public class Utilisateur {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Integer id;
   @Column(name = "firstName")
   private String firstName;
   @Column(name = "lastName")
   private String lastName;
   private String fullName;
   @Column(name = "age")
   private int age;

   @OneToMany(mappedBy="utilisateur", targetEntity = Ticket.class, cascade=CascadeType.ALL, fetch=FetchType.EAGER) 
   @JsonBackReference
private Set<Ticket> tickets = new HashSet<Ticket>(0);

   @OneToMany(mappedBy="utilisateur", targetEntity=UserAssignProject.class, cascade=CascadeType.ALL, fetch=FetchType.EAGER)
   @JsonBackReference
   private Set<UserAssignProject> userAssignProjects = new HashSet<UserAssignProject>(0);

   @OneToMany(mappedBy="utilisateur", targetEntity=Message.class, cascade=CascadeType.ALL, fetch=FetchType.EAGER)
   @JsonBackReference
   private Set<Message> messages = new HashSet<Message>(0); 
 /*.. getters and setters..*/ }

我在UserDaoImpl中有这个方法:

    public void save(User user) {
      Utilisateur utilisateur = new Utilisateur();
      user.setId(user.getId());
      user.setUsername(user.getUsername());
      user.setPassword(user.getPassword()); 
      user.setEnabled(true);
      user.setUserUtilisateur(utilisateur);
      getCurrentSession().save(user);
   }

结果: Exception here

我尝试过使用序列,GenerationType.AUTO ......,但它不起作用。

任何解决方案? 谢谢你的关注!

0 个答案:

没有答案
相关问题