JAVA类:
public class App implements Serializable {
private Long appId;//应用编号
private String appName;//应用名称
private Category cate;//所属类别编号
//省略getter,setter
}
public class Category implements Serializable {
private Long categoryId; //ID
private Long parentId; //父类别ID
private String categoryName; //类别名称
private Integer status; // 状态:0,生效 1,失效
//省略getter,setter
}
映射:
App.hbm.xml
<hibernate-mapping package="com.netcru.bean">
<class name="App" table="Applactions">
<id name="appId" column="appId" type="java.lang.Long">
<generator class="identity">
</generator>
</id>
<!-- 属性 -->
<property name="appName" column="appName"></property>
<many-to-one name="cate" column="categoryId" class="Category" outer-join="true"/>
</class>
</hibernate-mapping>
这里一定要设置outer-join="true"
Category.hbm.xml
<hibernate-mapping package="com.netcru.bean">
<class name="Category" table="Category">
<id name="categoryId" column="categoryId" type="java.lang.Long">
<generator class="identity">
</generator>
</id>
<!-- 属性 -->
<property name="parentId" column="parentId"></property>
<property name="categoryName" column="categoryName"></property>
<property name="status" column="status"></property>
</class>
</hibernate-mapping>
表结构:
CREATE TABLE [dbo].[Applactions](
[appId] [int] NOT NULL,
[appName] [varchar](40) NULL,
[categoryId] [int] NULL,
CONSTRAINT [PK_APPLACTIONS] PRIMARY KEY CLUSTERED
(
[appId] ASC
)
) ON [PRIMARY]
CREATE TABLE [dbo].[Category](
[categoryId] [int] IDENTITY(1,1) NOT NULL,
[parentId] [int] NULL,
[categoryName] [varchar](30) NULL,
[status] [int] NULL,
CONSTRAINT [PK_CATEGORY] PRIMARY KEY CLUSTERED
(
[categoryId] ASC
) ON [PRIMARY]