2

我在休眠类中遇到错误。元素类型“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>

请协助。

4

3 回答 3

2
<id name="id" type="integer" column="id" >
   <generator class="native"/>                <!-- 1 -->
   <param name="sequence">ISSUES_Seq</param>  <!-- 2 -->
</id>

请删除第二行并检查。看起来您已经为单个 bean/实体使用了两种 ID 生成策略(如果我没记错的话)

于 2013-11-15T09:45:55.793 回答
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>
于 2013-11-15T09:58:57.863 回答
0

问题在于此处未正确形成 xml 标记。

在您的 xml 中,参数标签不在生成器标签内。

<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>
于 2018-10-13T16:00:56.820 回答