Hibernate映射Map属性2

Hibernate在映射Map属性时生成映射文件。需要注意的一些地方。下面是我的一个例子。

Java类如下

public class NameAndNumber
{
    private Integer id;
    
    private String category;
    
    /*
     * 以 球队名称为键,球队编号为值。
     */
    private Map<String, String> NameNumber = new HashMap<>();

    //部分代码省略

生成的映射文件如下:

需要修改成如下的样子:包括生成主键的方式、表名称、键值对应的列(注意:<map-key 中的列名称还不能取名为key,否则发生错误。)

<?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 2017-9-17 12:59:20 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="com.zcd.exercise.map.NameAndNumber" table="NAME_AND_NUMBER">
        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="identity" />
        </id>
        
        <property name="category" type="java.lang.String">
            <column name="CATEGORY" />
        </property>
        
        <map name="NameNumber" table="NAME_NUMBER" lazy="true">
            <key>
                <column name="ID" />
            </key>
            <map-key type="java.lang.String">
                <column name="NAME"></column>
            </map-key>
            <element type="java.lang.String">
                <column name="NUMBER" />
            </element>
        </map>
        
    </class>
</hibernate-mapping>
原文地址:https://www.cnblogs.com/GooPolaris/p/7919863.html