无主键数据库的Hibernate使用问题

无主键数据库的Hibernate使用问题

大侠们,
我在接了一个项目进行二次开发后,发现数据库没有主键,我在使用Hibernate的时候反向工程生成.java文件后发现和以前有主键的文件很不一样。在互联网上搜索没有得到解决方案:下面我将我的文件和数据库贴出来,望指点:

CREATE TABLE [dbo].[blog_Config] (--博客配置
[BlogID] [int] IDENTITY (1, 1) NOT NULL ,--博客ID
[UserName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,---用户名
[Password] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,---密码
[Email] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,--电子邮件
[Title] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,---博客名称(用于说明该博客的一种属性)
[SubTitle] [nvarchar] (250) COLLATE Chinese_PRC_CI_AS NULL ,---博客名称说明(即子标题)
[Skin] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,---博客样式模板
[Application] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,-- 用户目录
[Host] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,---主机
[Author] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,---作者
[TimeZone] [int] NULL ,---时区
[IsActive] [bit] NULL ,---该用户是否可用(0为不可用,1为该用户是活动状态)
[Language] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,---系统语言
[ItemCount] [int] NULL ,---  首页文章显示数目
[LastUpdated] [datetime] NULL ,--- 最后更新时间
[News] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,---文章
[SecondaryCss] [ntext] COLLATE Chinese_PRC_CI_AS NULL ,--- 个人css样式(已经禁用)
[PostCount] [int] NULL ,--- ?
[StoryCount] [int] NULL ,--- ?
[PingTrackCount] [int] NULL ,---  ?
[CommentCount] [int] NULL ,---评论数统计
[IsAggregated] [bit] NULL ,--- 是否允许评论
[Flag] [int] NULL ,----?
[SkinCssFile] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,--- 模板样式文件(已经禁用)
[BlogGroup] [int] NULL ,---  博客组
[RegisterTime] [datetime] NULL ,---注册时间
[IsMailNotify] [bit] NULL ,---是否进行邮件通知(0不进行邮件通知,1进行邮件通知)
[NotifyMail] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,-- 被提醒者邮件地址
[IsOnlyListTitle] [bit] NULL ,---只是文章列表
[BlogType] [tinyint] NOT NULL ,---博客类型
[isRecommend] [bit] NOT NULL ,---是否进行系统自动推荐
[TopImage] [int] NULL ---用户头像
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

其中我最不理解的就是其中反向生成的(BlogConfig.java)和(BlogConfigId.java)了,不知道怎么来使用,我试用过很多中方法都的不到答案,在网上搜索了,说的不清不楚的。
在hibernate中,映射的PO必须有惟一标识的主键,主键具有唯一性。对于没有主键的数据库表,有如下解决方案:
选取表中某一字段作为主键,这个字段必须是唯一,不能重复的。
配置文件中进行配置:
<id name="id" column="id"  type="string" >
<generator class="assigned">
</generator>
</id>

<id name="id" column="id"  type="string" >  name,column分别对应PO和表, type说明字段类型
<generator class="assigned">  主键生成方式为分派,即由程序指定ID,而不是由hibernate或数据库自动生成ID。