我有三个名为:shops.class、user.class、vehicle.class 的持久类和三个 hibernate 映射文件shops.hbm.xml、users.hbm.xml、vehicle.hbm.xml
但是我的用户和车辆映射文件中出现以下错误:
The content of element type "class" must match
"(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
shops.hbm.xml:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated Jun 7, 2017 2:04:29 PM by Hibernate Tools 3.4.0.CR1 --> <hibernate-mapping> <class name="persistent_classes.shops" table="SHOPS"> <id name="id" type="int"> <column name="ID" /> <generator class="increment" /> </id> <version name="version_id" type="int" unsaved-value="undefined"> <column name="VERSION_ID" /> </version> <property name="name" type="java.lang.String"> <column name="NAME" /> </property> <property name="address" type="java.lang.String"> <column name="ADDRESS" /> </property> <property name="city" type="java.lang.String"> <column name="CITY" /> </property> <property name="dealername" type="java.lang.String"> <column name="DEALERNAME" /> </property> <property name="dealerno" type="java.lang.String"> <column name="DEALERNO" /> </property> <property name="dealeremail" type="java.lang.String"> <column name="DEALEREMAIL" /> </property> <property name="password" type="java.lang.String"> <column name="PASSWORD" /> </property> <property name="shops_string" type="java.lang.String"> <column name="SHOPS_STRING" /> </property> <property name="login" type="boolean"> <column name="LOGIN" /> </property> <list name="vehicles" inverse="false" table="VEHICLE" lazy="true"> <key> <column name="store_id" /> </key> <list-index></list-index> <one-to-many class="persistent_classes.vehicle" /> </list> <map name="users" table="SHOPS_MAP" lazy="true"> <key> <column name="ID" /> </key> <map-key type="java.lang.Integer"></map-key> <element type="java.lang.Integer"> <column name="USERS" /> </element> </map> </class> </hibernate-mapping>
车辆.hbm.xml:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated Jun 7, 2017 2:04:29 PM by Hibernate Tools 3.4.0.CR1 --> <hibernate-mapping> <class name="persistent_classes.vehicle" table="VEHICLE"> <id name="id" type="int"> <column name="ID" /> <generator class="increment" /> </id> <property name="stock" type="int"> <column name="STOCK" /> </property> <version name="version_id" type="int" unsaved-value="undefined"> <column name="VERSION_ID" /> </version> <property name="name" type="java.lang.String"> <column name="NAME" /> </property> <property name="company" type="java.lang.String"> <column name="COMPANY" /> </property> <property name="milage" type="java.lang.String"> <column name="MILAGE" /> </property> <property name="year" type="java.lang.String"> <column name="YEAR" /> </property> <property name="priceoriginal" type="java.lang.String"> <column name="PRICEORIGINAL" /> </property> <property name="priceoffer" type="java.lang.String"> <column name="PRICEOFFER" /> </property> <property name="vehicle_string" type="java.lang.String"> <column name="VEHICLE_STRING" /> </property> </class> </hibernate-mapping>
users.hbm.xml:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Generated Jun 7, 2017 2:04:40 PM by Hibernate Tools 3.4.0.CR1 --> <hibernate-mapping> <class name="persistent_classes.users" table="USERS"> <id name="id" type="int"> <column name="ID" /> <generator class="increment" /> </id> <map name="points" table="user_points" cascade="all"> <key column="user_id" /> <index column="shop_id" type="integer"></index> <element column="points" type="string"></element> </map> <version name="version_id" type="int" unsaved-value="undefined"> <column name="VERSION_ID" /> </version> <property name="login" type="boolean"> <column name="LOGIN" /> </property> <property name="name" type="java.lang.String"> <column name="NAME" /> </property> <property name="password" type="java.lang.String"> <column name="PASSWORD" /> </property> <property name="email" type="java.lang.String"> <column name="EMAIL" /> </property> <property name="mobno" type="java.lang.String"> <column name="MOBNO" /> </property> <property name="address" type="java.lang.String"> <column name="ADDRESS" /> </property> <property name="users_string" type="java.lang.String"> <column name="USERS_STRING" /> </property> </class> </hibernate-mapping>
我知道这个问题被问了很多次,但所有这些都与不使用标签有关。但是我在所有文件中都使用了这个标签,但在用户和车辆文件中仍然收到此错误。 请帮助我,我对此深感困惑。 提前致谢
最佳答案
version
必须在 property
和 map
之前定义
将其移至users
和vehicle
中id
定义之后hbm
关于java - 我的 hibernate 映射文件中出现未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44501925/