Caused by: java.sql.BatchUpdateException: ORA-01461: can bind a LONG value only for insert into a LONG column有的字段类型不匹配了吧。你查询用的是sql啊不是hql,把Users的包名带上,UserID也是字段名把,类似
from package.Users u where u.usersID=361
from package.Users u where u.usersID=361
是不是你的Users表中有LOB数据呀
我的表结构如下:
Users表
-------------------------------
UserID Number,
UserName VARCHAR2(16),
UserNickName VARCHAR2(16),
Description VARCHAR2(256)
---------------------------------
程序插入方法如下:
Context context = new InitialContext();
String contextName = Utils.getContextName(DataDAO.class);
DataDAO dataDAO = (DataDAO)context.lookup(contextName);Users user=new Users();
user.setUserName("世界");
user.setUserNickName("世界2");
user.setDescription("sdlkfs");
dataDAO.merge(user); //调用EntityManager的方法merge把数据更新到数据库
*********************
Users 为实体BEAN,UserID 我用到了序列,EJB自动处理,在上面不用显式给它赋值(相当SQL SERVER2000的自增长字段)现在那个错误我还弄不明白是什么意思,不知道是不是ORACLE字符值的问题还是JDBC驱动的问题.....