首页 \ 问答 \ (Hibernate的Oracle不能插入NULL)如何插入自动生成的ID?(( Hibernate Oracle cannot insert NULL ) How to insert auto generated ID?)

(Hibernate的Oracle不能插入NULL)如何插入自动生成的ID?(( Hibernate Oracle cannot insert NULL ) How to insert auto generated ID?)

我正在使用hibernate执行CRUD操作的项目。 我有用户模型,我试图插入信息,但不断收到此错误

Hibernate: insert into APPUSER (dob, email, firstName, lastName, password) values (?, ?, ?, ?, ?)
Jun 21, 2016 2:17:07 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1400, SQLState: 23000
Jun 21, 2016 2:17:07 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: ORA-01400: cannot insert NULL into ("MYAPP8785"."APPUSER"."ID")

用户模型看起来像

@Entity
@Table(name="APPUSER")
public class AppUser {


    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Email
    @Size(max = 50)
    private String email;

    @Column
    private String dob;

    @Column
    private String firstName;

    @Column
    private String lastName;

    @Column(name = "password", nullable = false)
    private String password;
}

Hibernate的属性就像

properties.put("hibernate.dialect","org.hibernate.dialect.MySQLDialect");
//properties.put("hibernate.current_session_context_class","thread");
properties.put("hibernate.hbm2ddl.auto","update");
properties.put("hibernate.show_sql","true");

我的印象是hibernate会为我自动生成id并使用sequence插入它们


I am working on project where I am using hibernate to perform CRUD operations. I have user model and I am trying to insert the information but keeping getting this error

Hibernate: insert into APPUSER (dob, email, firstName, lastName, password) values (?, ?, ?, ?, ?)
Jun 21, 2016 2:17:07 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: 1400, SQLState: 23000
Jun 21, 2016 2:17:07 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: ORA-01400: cannot insert NULL into ("MYAPP8785"."APPUSER"."ID")

The user model looks like

@Entity
@Table(name="APPUSER")
public class AppUser {


    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Email
    @Size(max = 50)
    private String email;

    @Column
    private String dob;

    @Column
    private String firstName;

    @Column
    private String lastName;

    @Column(name = "password", nullable = false)
    private String password;
}

Hibernate properties like

properties.put("hibernate.dialect","org.hibernate.dialect.MySQLDialect");
//properties.put("hibernate.current_session_context_class","thread");
properties.put("hibernate.hbm2ddl.auto","update");
properties.put("hibernate.show_sql","true");

I am under the impression that hibernate would auto generate id for me and insert them using sequence


原文:https://stackoverflow.com/questions/37936968
更新时间:2022-06-07 22:06

最满意答案

两种方法:

  1. 当缓冲区已满时写出缓冲区

    首先,在脚本开头设置match_max 。 然后

    set file "/tmp/b"
    set log [open $file w]
    # ...
    send "$data\r"
    expect {
        full_buffer {puts $log $expect_out(buffer); exp_continue}
        "end_expect" exit
    }
    puts $log $expect_out(buffer)
    close $log
    expect_eof
    
  2. 而且工作少得多,使用log_file记录你关心的部分。

    不要打扰match_max ,和

    set file "/tmp/b"
    # ...
    log_file $file
    send "$data\r"
    expect {
        "end_expect" exit
    }
    expect_eof
    

Two ways to approach this:

  1. write out the buffer when it's full

    First, set match_max at the start of your script. Then

    set file "/tmp/b"
    set log [open $file w]
    # ...
    send "$data\r"
    expect {
        full_buffer {puts $log $expect_out(buffer); exp_continue}
        "end_expect" exit
    }
    puts $log $expect_out(buffer)
    close $log
    expect_eof
    
  2. and much less work, use log_file to log the parts you care about.

    Don't bother with match_max, and

    set file "/tmp/b"
    # ...
    log_file $file
    send "$data\r"
    expect {
        "end_expect" exit
    }
    expect_eof
    

相关问答

更多

相关文章

更多

最新问答

更多
  • h2元素推动其他h2和div。(h2 element pushing other h2 and div down. two divs, two headers, and they're wrapped within a parent div)
  • 创建一个功能(Create a function)
  • 我投了份简历,是电脑编程方面的学徒,面试时说要培训三个月,前面
  • PDO语句不显示获取的结果(PDOstatement not displaying fetched results)
  • Qt冻结循环的原因?(Qt freezing cause of the loop?)
  • TableView重复youtube-api结果(TableView Repeating youtube-api result)
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • SQL Server 2014版本支持的最大数据库数(Maximum number of databases supported by SQL Server 2014 editions)
  • 我如何获得DynamicJasper 3.1.2(或更高版本)的Maven仓库?(How do I get the maven repository for DynamicJasper 3.1.2 (or higher)?)
  • 以编程方式创建UITableView(Creating a UITableView Programmatically)
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何防止调用冗余函数的postgres视图(how to prevent postgres views calling redundant functions)
  • Sql Server在欧洲获取当前日期时间(Sql Server get current date time in Europe)
  • 设置kotlin扩展名(Setting a kotlin extension)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 如何在vim中启用python3?(How to enable python3 in vim?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • dedecms如何安装?
  • 在哪儿学计算机最好?
  • 学php哪个的书 最好,本人菜鸟
  • 触摸时不要突出显示表格视图行(Do not highlight table view row when touched)
  • 如何覆盖错误堆栈getter(How to override Error stack getter)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • USSD INTERFACE - > java web应用程序通信(USSD INTERFACE -> java web app communication)
  • 电脑高中毕业学习去哪里培训
  • 正则表达式验证SMTP响应(Regex to validate SMTP Responses)