如果不是,方法应该是findOne(Interger id)才对,可但是你这个实体类哪里有id的字段;
你也可以试试findBy字段这种方式
另外注意下几个Repository接口的细微区别,会不会问题出在接口选择上面!
persist(),是保存,跟save()方法一样,知识jpa官方说叫persist比较好一些,更接近持久化的含义。而merge()是合并的意思,就是当你保存的实体,根据主键id划分,如果已存在,那么就是更新 *** 作,如果不存在,就是新增 *** 作。persist会把传进去的实体放到持久化上下文中,此时如果持久化上下文中有了这个实体,就会抛出javax.persistence.EntityExistsException,没有的话事务提交的时候把那个对象加进数据库中,如果数据库中已经存在了那个对象(那一行),就会抛出com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException;
而merge会在持久化上下文中生成传进去的实体的受管版本,如果已经有了受管版本,那也不会抛出异常,然后把那个受管的实体返回出来,事务提交的时候如果数据库中不存在那个对象(那一行),就把把那个受管的加进去,存在的话就替换掉原来的数据。merge是如果持久化上下文中有了受管版本,那就更新,没有就复制一份,返回受管的。
用 @@IDENTITYDECLARE @Res INT OUTPUT
你要定义一个OUTPUT的函数,
当插入数据之后,加上一个 SET @Res =@@IDENTITY
C#程序里用 取@Res 这个参数就得到了这个 最后一次插入的ID值了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)