java - Hibernate session.save() 总是返回 1

标签 java spring hibernate

我在 session.save() 中得到了一个奇怪的结果。它总是返回 1。但数据库中的值已正确插入。请提出您发现的任何疑问

代码

session = getSessionFactory().openSession();
Transaction transaction = session.beginTransaction();
userId = (Long)session.save(user);
transaction.commit();

用户 - 持久性

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
@GenericGenerator(name = "increment", strategy = "increment")
@Column(name = "ID")
public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

@Column(name = "USERNAME", length = 100)
public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

@Column(name = "PASSWORD", length = 100)
public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

@OneToOne(fetch = FetchType.EAGER)
@MapsId
@JoinColumn(name = "ROLEID")
public Role getRole() {
    return role;
}

public void setRole(Role role) {
    this.role = role;
}

@Column(name = "IMAGEURL", length = 2000)
public String getImageUrl() {
    return imageUrl;
}

public void setImageUrl(String imageUrl) {
    this.imageUrl = imageUrl;
}

版本

hibernate :4.3.7 最终版本

Spring :4.1.2

最佳答案

提到这个问题Difference between @GeneratedValue and @GenericGenerator .

问题可能出在您的 @GeneratedValue 上。

所以你可以改变

@GeneratedValue(strategy=GenerationType.SEQUENCE)

@GeneratedValue(generator="increment")

注意:可以引用 this 将您的数据库序列分配给@GeneratedValue

关于java - Hibernate session.save() 总是返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524416/

相关文章:

java - Maven 2 多模块 pom

javascript - 无法根据 Thymeleaf 变量执行脚本 <script th :inline ="javascript">

java - jdbcAuthentication() 而不是 inMemoryAuthentication() 不提供访问权限 - Spring Security 和 Spring Data JPA

java - Spring Boot 和配置文件

java - OpenJpa 查询缓存在空值的情况下不刷新

java - Hibernate 性能最佳实践?

java - 使用 zip4j 创建 zip 时保留文件权限

java - 进行自左连接时意外离开

MySQL 日期排序不一致

java - 寻找多线程死锁的原因?