我在hibernate类中遇到错误。 元素类型“id”的内容必须匹配“(meta *,column *,type?,generator?)”
<class name="com.subex.models.Issues" table="ISSUES">
<id name="id" type="integer" column="id" >
<generator class="native"/>
<param name="sequence">ISSUES_Seq</param>
</id>
<property name="brief" type="string" column="brief"/>
<property name="description" type="string" column="description"/>
<property name="module" type="string" column="module"/>
<property name="version" type="string" column="version"/>
<property name="site" type="string" column="site"/>
<property name="posted_by" type="string" column="posted_by"/>
</class>
请协助。
答案 0 :(得分:2)
<id name="id" type="integer" column="id" >
<generator class="native"/> <!-- 1 -->
<param name="sequence">ISSUES_Seq</param> <!-- 2 -->
</id>
请删除第二行并检查。看起来你已经为单个bean /实体使用了两个ID生成策略(如果我没有错)
答案 1 :(得分:0)
<param>
是生成器的内部元素,因此您必须这样做:
<id name="id" type="integer" column="id" >
<generator class="native">
<param name="sequence">ISSUES_Seq</param>
<generator>
</id>
或者更好,因为您使用序列:
<id name="id" type="integer" column="id" >
<generator class="sequence">
<param name="sequence">ISSUES_Seq</param>
<generator>
</id>
答案 2 :(得分:0)
问题出在这里的xml标记格式不正确。
在您的xml中,param标记不在generator标记内。
<id name="id" type="integer" column="id" >
<generator class="native"/>
<param name="sequence">ISSUES_Seq</param>
</id>
正确的做法是:
<id name="id" type="integer" column="id" >
<generator class="native">
<param name="sequence">ISSUES_Seq</param>
<generator>
</id>