我只是我,或者你不能将短片映射到序列对象?它在数据库中创建了sequece,但它似乎没有在其上调用nexval。
我正在使用:eclipselink 2.3,openjdk7,ubuntu oneiric amd64,eclipse。
有些代码:
这有效:
@Id @GeneratedValue(strategy= GenerationType.SEQUENCE,generator="CategoriaDeportiva_SEQ")
@SequenceGenerator(name = "CategoriaDeportiva_SEQ", allocationSize=1, initialValue=1, sequenceName="CategoriaDeportiva_SEQ")
private int id;
这不是:
@Id @GeneratedValue(strategy= GenerationType.SEQUENCE,generator="CategoriaDeportiva_SEQ")
@SequenceGenerator(name = "CategoriaDeportiva_SEQ", allocationSize=1, initialValue=1, sequenceName="CategoriaDeportiva_SEQ")
private short id;
答案 0 :(得分:0)
这很奇怪。您是否在日志中出现任何错误,如果将EclipseLink日志记录设置为最佳,则会记录哪些SQL?
这是Postgres或EclipseLink的问题。 在Postgres中绑定一个short可能会遇到一些问题,为了解决这个问题,您可以在@Id映射上使用@Convert和@TypeConverter(dataType = Integer.class)来将其绑定为int。
您也可以在其他数据库上尝试确认它是否是Postgres问题。
如果是EclipseLink问题,请记录错误。
一般情况下,使用short作为Id不是一个好主意,它很容易用完Ids。即使使用int也不建议,长期最好。