使用此批注编译Java代码时出错:
@Id
@Column(name="\"idClass\"", unique=true, nullable=false, columnDefinition = "serial")
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer idClass;
<property name="show_sql">true</property>
在调试中它返回:
Hibernate: select nextval ('hibernate_sequence')
id列是串行的。有任何想法吗?
我尝试使用@Generated(GenerationTime.INSERT)
进行编译,但不会运行。感谢。
[解决]
我的解决方案是:
@Id
@SequenceGenerator(name="IDCLASS_GENERATOR", sequenceName="\"table_idClass_seq\"", allocationSize = 1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="IDCLASS_GENERATOR")
@Column(name="\"idClass\"")
答案 0 :(得分:0)
见下面的代码
@Column(name="idClass", unique=true, nullable=false, columnDefinition = "serial")
@Generated(GenerationTime.INSERT)
private Integer idClass;
或者您可以使用
@GeneratedValue(strategy = GenerationType.IDENTITY)
答案 1 :(得分:0)
你真正的问题是区分大小写,tu用例敏感的列名,你必须用反引号包装它。
@Id
@Column(name="`idClass`")
@GeneratedValue(strategy = IDENTITY)
private Integer idClass;