我现在有一个员工表,其中有个部门id是和部门表中的id是有关联的,但是我生成的员工实体中部门id是一个部门实体,我现在想插入员工资料应该怎么插?因为我是实体操作,但是部门id这里是部门实体,我不知道怎么放个id在里面

解决方案 »

  1.   

    我的实体字段如下
    private Integer empid;
    private Demp demp;//这是部门表的实体
    private String empname;
    private Integer empage;
    private String empstate;
      

  2.   

    select 对应部门 找到部门id
    set对应的数据和部门id到员工对象
    save此员工对象
      

  3.   

    你应该先创建部门,然后根据员工对应的ID查询出一条部门的实体
    private Demp demp;//这是部门表的实体 
    这个字段存入部门的实体就行了
    hibernate表里会自动为你存入部门的ID
      

  4.   

    我部门表里已经插了数所据了,我现在在员工表里只用插入对应的id即可,由于实体中的部门id是部门实体,我就不知道怎么插入了,hibernate不是都是操作的实体嘛
      

  5.   

    这是要上实体的XML文件配置吗?
      

  6.   

    Demp demp =new Demp();
    demp.setID=传过来的ID;
    员工.setdemp(demp);
    save(员工);
    其它的部门信息有没必要设置了
      

  7.   

    我写了怎么会出现以下异常呢?\
    Servlet.service() for servlet default threw exception
    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' er from transaction definition.
    at org.springframework.orm.hibernate3.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1095)
    at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:634)
    at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
    at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:632)
    at crm.dao.EmptDAO.save(EmptDAO.java:38)
    at crm.biz.EmptImpl.save(EmptImpl.java:65)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
    at 
      

  8.   

    你的部门表中存在不允许为空的字段,把他们设置上值,随便什么值都可以,或者是用你的部门ID load或get出一个实体对像,不过这样做会增加一次数据库访问