hibernate 复合主键其中id键为自动增长

2025-01-14 08:01:21
推荐回答(2个)
回答(1):

你的问题应该是id实现不了自动增长。
上次我做的一个项目有一部分也是因为复合主键实现不了自动增长所以采用了手动赋值的办法
记录插入/更新时首先从数据库中查询出当前条数,不存在则为记录数+1
这样来实现的
当时的配置主文件复合主键部分是这样的(复合主键另外使用了一个类,):


@hibernate.id
generator-class="assigned"

name="id"
column="ID"
type="java.lang.Integer"
>

@hibernate.property
column="ID"
length="0"


name="coursename"
column="COURSENAME"
type="java.lang.String"
length="20"
>

@hibernate.property
column="COURSENAME"
length="20"


name="departid"
column="DEPARTID"
type="java.lang.String"
length="15"
>

@hibernate.property
column="DEPARTID"
length="15"


回答(2):

你的问题应该是id实现不了自动增长。
上次我做的一个项目有一部分也是因为复合主键实现不了自动增长所以采用了手动赋值的办法
记录插入/更新时首先从数据库中查询出当前条数,不存在则为记录数+1
这样来实现的
当时的配置主文件复合主键部分是这样的(复合主键另外使用了一个类,):
name="comp_id"
class="org.tan.infosys.model.Course4departPK">
attribute="field-description"
inherit="false">
@hibernate.id
generator-class="assigned"

name="id"
column="ID"
type="java.lang.Integer"
>
attribute="field-description">
@hibernate.property
column="ID"
length="0"


name="coursename"
column="COURSENAME"
type="java.lang.String"
length="20"
>
attribute="field-description">
@hibernate.property
column="COURSENAME"
length="20"


name="departid"
column="DEPARTID"
type="java.lang.String"
length="15"
>
attribute="field-description">
@hibernate.property
column="DEPARTID"
length="15"