我正在使用Hibernate 3.3和PostgreSQL 8.x,并希望使用Hibernate注释来映射不是主键的自动递增列.
使用SERIAL类型或Postgres中的序列映射列无关紧要,只要它由数据库而不是Hibernate自动递增即可.我尝试了以下映射,但它们始终生成null orderId.
@Column(name = "orderId", insertable = false)
@Generated(GenerationTime.INSERT)
//@GeneratedValue(strategy = javax.persistence.GenerationType.AUTO)
private Integer orderId;
Run Code Online (Sandbox Code Playgroud)
我将不胜感激任何帮助.
谢谢
这是我的课程列表
@MappedSuperclass
public abstract class JpaModel {
@Id
@Column(name ="ID", columnDefinition = "serial")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
Run Code Online (Sandbox Code Playgroud)
产品实体
@Entity
@Table(name = "REF_PRODUCT")
public class Product extends JpaModel{
@Column(name= "NAME")
private String name;
@Column(name = "MANUFACTURER")
private String manufacturer;
/**
* Work around for missing
*/
@OneToOne(optional = true)
@JoinColumn(name="id")
private InventoryItemPicture picture;
Run Code Online (Sandbox Code Playgroud)
.... }
和库存物品图片实体
@Entity
@Table(name = "TXN_INVENTORY_PICTURE")
public class InventoryItemPicture extends JpaModel{
@Column
private byte[] image;
@Column
private String fileName;
Run Code Online (Sandbox Code Playgroud)
保存产品时,inventoryItemPicture 是可选的,因此有时它会是空值,这是我希望发生的事情。但是,在使用空值保存产品实体时,会出现此错误。
Caused by: org.postgresql.util.PSQLException: …Run Code Online (Sandbox Code Playgroud)