数据库中表的主键可以是姓名或者姓名+身份证号吗? 回答:可以
如果设置为senquce的话,必须是自增长了。那姓名或者姓名+身份证号就不能实现自增长了。回答:不使用hibernate主键生成器不就完了,反正你的主键是姓名+身份证号,自己插入的,不用自动生成啊

解决方案 »

  1.   

    首先非常感谢楼上两位的回答!
    回答lanxk(蓝) :用身份证号码+姓名做主键,这个是数据库设计方中的要求,因为现在的身份证号有重复的现象。
    回答 vvfish119(肥肥):请教,怎样不使用hibernate主键生成器,我看mapping文件中,都需要有那个id主键的。而我们的数据库设计中都没有这样的id主键的。多谢您能继续回答。
      

  2.   

    implements import net.sf.hibernate.id.IdentifierGenerator
    自己的id分配方法.
      

  3.   

    public interface IdentifierGenerator { // Generate a new identifier.
    public Serializable generate(SessionImplementor session, Object object) throws SQLException, HibernateException;

    }
    ----------------------------------------------------
    implements net.sf.hibernate.id.IdentifierGenerator
    自己的id分配方法.
      

  4.   

    <id name="id" type="java.lang.String" column="id">
    <generator class="assigned"/>
    </id>把主键生成策略设置成assigned,由外部程序生成,在save()前指定,那样你就可以自己setId()来指定主键了