用hibernate等实现:从一数据库复制一条记录,然后修改该记录的某一列,再插入原数据库

目前该功能(简称copyinsert)可以在mysql数据库里用sql语句实现,我想用hibernate实现,大部分都已经完成,感觉在dao层有一些错误,希望大佬帮忙解惑,能够解决者,还可以另外给C币。
例子如下:(ID为自增,非数据库定义内容)
图片说明

数据库原来有三条记录,然后在mysql中输入查询语句:

INSERT INTO t_test(NO,NAME,SEX) SELECT REPLACE (NO,'XS1','XS4'),NAME,SEX FROM t_test WHERE NO='XS1';
图片说明

可以成功在mysql数据库中实现,结果如下:
图片说明

(从上面看,在数据库中直接操作是可以的,但是我想用框架实现)我用了hibernate,struts2,Jeasyui框架(基本都不熟练),目前能确定的是dao层的拼接的sql语句是正确的,但是不能实现插入数据库的功能。

系统主界面如下:
图片说明
点击datagrids上面的“复制并插入“按钮,期望实现**复制某一条信息,修改其中一列后再插入数据库中**(例子是,复制XS1信息,将XS1修改为XS99后,再插入原数据库)。主界面jsp关键代码如下:

//1."复制并插入信息"按钮作用
        $("#deriveBtn").click(function(){
            var no1="XS1";
            var no2="XS99";
            $.post("test_copyinsert.action",{"no1":no1,"no2":no2},function(data){

                if(data.success){
                    //刷新datagrid
                    $("#list").datagrid("load");
                    //提示
                    $.messager.show({
                        title:"提示",
                        msg:"insertcopy成功"
                    });
                }else{
                    $.messager.alert("提示","检索失败:"+data.msg,"error");
                }
            },"json");
        });
    });

下面是TestAction部分代码(主要体现copyinsert):

package test.action;

//copyinsert实现
private String no1;
public void setNo1(String no1) {//普通属性驱动,提供set方法进行接收
    this.no1 = no1;
}
private String no2;
public void setNo2(String no2) {//普通属性驱动,提供set方法进行接收
    this.no2 = no2;
}
public void copyinsert(){
    service.copyinsert(no1,no2);
}
}

下面是TestServiceImpl部分代码(主要体现copyinsert):

package test.service.impl;
@Override
public void copyinsert(String no1, String no2){
    dao.copyinsert(no1,no2);
}
}

下面是TestDaoImpl部分主要代码(主要体现copyinsert功能):

@Override
public void copyinsert(String no1, String no2) {
    // 获取Session
    Session session = HibernateUtils.getSession();
    try {
        Transaction tx = session.beginTransaction();
        String sql="INSERT INTO t_test (NO,NAME,SEX) SELECT REPLACE (NO,"+"'"+no1+"'"+","+"'"+no2+"'"+"),NAME,SEX FROM t_test WHERE NO="+"'"+no1+"'"+";";
        SQLQuery sqlQuery = session.createSQLQuery(sql);
        List list=sqlQuery.list();//就是这一行!!!!!
        tx.commit();
    } catch (Exception e) {
        e.printStackTrace();
        throw new RuntimeException(e);
    } finally {
        // 释放session
        session.close();
    }

其中,在上述TestDaoImpl代码中,我不太清楚“List list=sqlQuery.list();”的作用,但是如果没有添加这一行代码,运行程序(即点击主界面“复制并插入”按钮)后,数据库没有插入值,myeclipse的Console也没有输出任何新的查询语句;
当在上述TestDaoImpl代码中添加“List list = sqlQuery.list(); ”这一行代码后,再点击按钮运行,数据库仍然没有插入值,但是Console输出了查询语句,但是紧接着会报错,mysql数据库也没有成功插进数据,如图:
图片说明
图片说明

2个回答

List list=sqlQuery.list();是返回查询的list集合;
如果你没加这句,没输出是因为你前面的操作只是把资源加入类里面,并没有进行持久化操作,所有没有输出。
当你加了这句报错是因为sqlQuery.list();返回list集合。但你是insert操作,所以会报错。
使用sqlQuery.executeUpdate();即可执行原生sql语句。
你要知道SQLQuery的list()执行查询,executeUpdate()执行增删改操作就可以了

tongkaiming
tongkaiming 回复hey_wanzi: 这只是hibernate的基本方法
一年多之前 回复
hey_wanzi
VanziWu 谢谢你的讲解,问题已经解决,我是非计算机专业,对web编程这块不太熟悉,以后有疑惑可能还会麻烦你。
一年多之前 回复

List list=sqlQuery.list();这句代码作用是执行sql语句,创建了一个list去存储数据,也就是sql操作后的结果集存到了list里面,但是list并没有被操作,就会出现结果集无法被提取。
你的思路有问题,这里做的是插入操作,不需要返回结果集,代码应该是session.cretaeSQLQuery().executeUpdate()

hey_wanzi
VanziWu 谢谢你花费时间解惑,我试了下,直接在session.createSQLQuery()后添加executeUpdate()会报错,另起一行写sqlQuery.executeUpdate();可以解决问题,感谢你提供思路。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
hibernate更新数据库一条记录出现很诡异的情况
在下午工作时,需要更新数据库一条记录的某个字段,然后调用saveOrUpdate,去数据库一看,发现这条记录的其它字段值都为空了。大家遇到过吗?
hibernate:如何实现数据库某字段一列数据同时+4
如图,我想实现存储数量同时+4,hibernate的HQL怎么写?
请问hibernate mysql如何将一个数据库提取出来的Entity作为源保存到另外一个数据库
使用mysql-connector 5和hibernate,两个数据库都配置好了, 已经验证可以做基础的select操作。 现在想在一个数据库中使用Dao获取Entity然后不用new另外的Entity, 直接使用这个Entity保存到另外数据库(因为需要的表太多,不可能给 每一个Entity都写一个拷贝方法,而且Entity其实就是JPA, 两个数据库的Entity应该是相差无几的)。也就是数据移行,有一些id 关联也需要改掉。 现在假设数据库只有一个key即id且AUTO INCREMENT,JPA注解如下 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) protected Long id; 如果要实现上面的功能,我想使用saveOrUpdate,所以直接设置 entity.setId(null),然后希望数据库能够自动为id赋值。 然后循环所有表,把所有数据都通过这种方法“拷贝”过去。 测试时几条数据还可以,但是当正式拿到数据库中跑时,出现下面错误 org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 定位在某一些id替换的Dao.saveOrUpdate中。我是先将所有数据原样“拷贝”,并记录id映射,然后重新来循环替换id,在替换时就出现了这样的错误。 我不知道是哪里有错误,是entity.setId(null)的问题吗?
Hibernate为什么可以得到数据库生成的主键值?
学习Hibernate遇到一个疑问. 用的是MySQL数据库, Hibernate主键策略配置:@GeneratedValue(strategy=GenerationType.IDENTITY), 调用persist(obj);保存一个对象后, 主键值是数据库自动生成的, 但是Hibernate怎么知道的生成的这个值是多少呢?难道数据库保存了记录之后, 将主键值返回给了Hibernate吗?之前直接操作数据库命令行的时候, 并不会得到这样的返回值啊, 一般存储一条数据之后会返回的不都是: (1 row(s) affected) Execution Time : 00:00:00:078 Transfer Time : 00:00:00:000 Total Time : 00:00:00:078
hibernate可不可以根据一个实体类查询出数据库中是否存在该记录
需要判断一条记录是否已经在数据库中是否存在重复记录,用hql的话传入的参数会比较多
hibernate在tomcat下无法访问数据库
hibernate在tomcat下无法访问数据库 hibernate在eclipse下可以连接到数据库,一发布到tomcat就报错: 1.No suitable driver found for jdbc:mysql:///hibernate; 2.Error calling DriverManager#getConnection; 3.Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]。 测试过同一段代码在eclipse下用hibernate和dbutils都可以连接到数据库,但发布到tomcat只有dbutils才能访问到数据库。 我的用是apache-tomcat-7.0.52和驱动包mysql-connector-java-5.1.7-bin.jar。 昨天才刚学了hibernate,今天遇到这问题查了一天都没发现问题. 下面是hibernate和c3p0的配置文件 ![图片说明](https://img-ask.csdn.net/upload/201710/19/1508382636_936962.png) ![图片说明](https://img-ask.csdn.net/upload/201710/19/1508382675_857886.png)
hibernate的关联关系,是否数据库表中有外键没有关系?
hibernate的关联关系,是否数据库表中有外键没有关系? 昨天使用了hibernate做了一个多对一的关系,然后在做数据库字段的时候,一开始并没有去建立外键约束,只是把关联字段的信息放了上去,然后CRUD操作都没问题,然后看了一篇帖子,上面看到数据库表中有外键约束,这时候才想起来这个事情,我加了外键以后也没什么问题,再去掉还是没有问题,那么这里是加还是不加外键呢?hibernate自己处理好了吗?有什么区别吗?以后是加好还是不加好呢?谢谢各位了。
hibernate关联数据库
用hibernate中的映射文件可以生成数据库吗?
求教:如何通过Spring hibernate quartz动态配置时间查询数据库表信息
quartz将任务时间持久化到数据库中,定时通过hibernate配置文件查询数据库中相应表的数据,因为有很多任务,cron如果写在配置中会很乱。
hibernate在tomcat下无法连接mysql数据库
hibernate在eclipse下能连接mysql数据库,但是发布到tomcat下就显示: 1.No suitable driver found for jdbc:mysql:///hibernate, 2.Error calling DriverManager#getConnection, 3. Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment],这三个异常。 我用的是apache-tomcat-7.0.52,驱动包mysql-connector-java-5.1.7-bin.jar。 测试过同一段代码在eclipse下用hibernate和dbutils都能连接数据库,这样说明代码和jar包应该都是没问题的,一发布到tomcat下就只有dbutils方式才能访问到数据库。应该就在hibernate发布到tomcat这一过程出了问题 另一种情况就是把驱动包换成mysql-connector-java-5.0.4-bin.jar,不管是eclipse下还是tomcat下,hibernate和dbutils方式都会抛上述异常,5.0.4这个包是以前用dbutils方式连接数据库的项目用的,之前毫无问题。是不是hibernate还和驱动包版本有关? 昨天刚学的hibernate,今天遇到这状况查了一天都没发现问题在哪,上来问问大神们。。。
关于hibernate更新数据库的问题
写了一个小项目,用hibernate连接数据库,运行后,直接在数据库中修改了数据,但在项目中进行增删改查操作时,显示的数据仍然是修改前的数据,感觉应该是缓存的问题,求助,使用hibernate,怎样可以在修改完数据库后,项目中的数据可以同步进行更新
Java项目跨服务中文乱码:从A服务中增加一条中文的记录,到了B服务的数据库中就变成了乱码
[size=small][color=brown][color=brown][color=darkred]最近在做一个项目,有一个功能是这样的:A服务中有个通讯录功能,可以对通讯录进行增删改查的操作。但通讯录是存在B服务中的数据库的。那么问题出现了,从A服务中增加一条中文的记录,到了B服务的数据库中就变成了乱码,然后在B服务的页面输出通讯录时,因为它没有做转码处理,所以显示是乱码。该怎么做能让A服务储存进去的中文在B服务的数据库中不是乱码呢?(PS:B服务数据库中的那个乱码字段是UTF-8编码,A服务存的时候该字段也是UTF-8编码[size=medium][/size]的)谢谢。[/color][/size]
spring +Hibernate配置连接数据库,
org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: rollback failed at org.springframework.orm.hibernate4.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:579) Caused by: org.hibernate.TransactionException: rollback failed at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:215) Caused by: org.hibernate.TransactionException: unable to rollback against JDBC connection at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doRollback(JdbcTransaction.java:167) Caused by: java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:650) Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:196) Caused by: java.sql.SQLRecoverableException: IO Error: Connection timed out at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:650) Caused by: java.net.SocketException: Connection timed out at java.net.SocketInputStream.socketRead0(Native Method) 是每次重启了Tomcat过段时间登录就会出现这个错误,重启后有段时间是正常的,在本地代码报错的是一个很简单的查询语句,在windows环境下能正常运行,在linux下隔断时间就会出现这个错误,用的容器是Tomcat
hibernate 使用update方法时出现异常:org.hibernate.StaleStateException: Batch update retu
我就是想从数据库(mysql)中查出对象后,更改它的一些属性,用update方法更新这个对象,就抛出上面一大堆异常!这是怎么回事啊? 异常如下: 21:24:25,718 ERROR AbstractBatcher:61 - Exception executing batch: org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1 at org.hibernate.jdbc.BatchingBatcher.checkRowCount(BatchingBatcher.java:93) at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:79) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:356) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) at util.HibernateUtil.commit(HibernateUtil.java:25) at dao.UserDao.update(UserDao.java:131) at face.LoginFrame$ButtonAction.actionPerformed(LoginFrame.java:639) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6216) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5981) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4583) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 21:24:25,734 ERROR AbstractFlushingEventListener:299 - Could not synchronize database state with session org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1 at org.hibernate.jdbc.BatchingBatcher.checkRowCount(BatchingBatcher.java:93) at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:79) at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58) at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1009) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:356) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) at util.HibernateUtil.commit(HibernateUtil.java:25) at dao.UserDao.update(UserDao.java:131) at face.LoginFrame$ButtonAction.actionPerformed(LoginFrame.java:639) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6216) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5981) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4583) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) //UserDao中的update方法: public void update(User user) { HibernateUtil.getSession().update(user); HibernateUtil.commit(); } HibernateUtil类: package util; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static SessionFactory sf; private static Transaction ts; private static Session session; static { sf = new Configuration().configure().buildSessionFactory(); } public static Session getSession() { session = sf.getCurrentSession(); ts = session.beginTransaction(); return session; } public static void commit() { try { ts.commit(); } catch (HibernateException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
HIbernate怎么表怎么去和数据库映射
HIbernate怎么表怎么去和数据库映射
Hibernate连接数据库出错
为什么我的hibernate都能查询oracle数据库里面的东西,也执行了hql语句,但是在query.list()的时候会报错,是不是驱动错了?求大神指点一下啊,下面的是异常 org.hibernate.exception.GenericJDBCException: could not execute query org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126) org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114) org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) org.hibernate.loader.Loader.doList(Loader.java:2235) org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129) org.hibernate.loader.Loader.list(Loader.java:2124) org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149) org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) com.sneaker.daoimpl.CustomerDaoImpl.login(CustomerDaoImpl.java:29) com.sneaker.service.CustomerService.login(CustomerService.java:20) com.sneaker.action.CustomerAction.login(CustomerAction.java:42) ..... java.sql.SQLException: ???? oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208) oracle.jdbc.driver.NumberCommonAccessor.throwOverflow(NumberCommonAccessor.java:7465) oracle.jdbc.driver.NumberCommonAccessor.getInt(NumberCommonAccessor.java:103) oracle.jdbc.driver.OracleResultSetImpl.getInt(OracleResultSetImpl.java:521) oracle.jdbc.driver.OracleResultSet.getInt(OracleResultSet.java:1563) org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:236) org.hibernate.type.IntegerType.get(IntegerType.java:51) org.hibernate.type.NullableType.nullSafeGet(NullableType.java:184) org.hibernate.type.NullableType.nullSafeGet(NullableType.java:173) org.hibernate.type.AbstractType.hydrate(AbstractType.java:105) org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2114) org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1404) org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1332) org.hibernate.loader.Loader.getRow(Loader.java:1230) org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603) org.hibernate.loader.Loader.doQuery(Loader.java:724) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) org.hibernate.loader.Loader.doList(Loader.java:2232) org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129) org.hibernate.loader.Loader.list(Loader.java:2124) org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149) org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) com.sneaker.daoimpl.CustomerDaoImpl.login(CustomerDaoImpl.java:29) com.sneaker.service.CustomerService.login(CustomerService.java:20) com.sneaker.action.CustomerAction.login(CustomerAction.java:42) ...
使用hibernate注解报错:org.hibernate.QueryException
最近用maven+SSH做项目练手,测试时用hql语句查表时报错,使用的注解配置类属性的关联关系,因为对hibernate注解不太熟练,其余的使用hibernate反向生成的配置文件。 单元测试报错如下: org.hibernate.QueryException: could not resolve property: account of: beanFactory.Category [from beanFactory.Category c left join fetch c.account where c.type like :type] Category 类中有个类属性 Account 对应 数据库中category表account_id字段,也是外键,绑定account表中的id Category类的配置文件:![因为已经使用注解配置多对一所以将配置文件中的该段注释了](https://img-ask.csdn.net/upload/201709/16/1505533503_915389.png) Account类的配置文件:![同样使用注解所以将该段注释](https://img-ask.csdn.net/upload/201709/16/1505534322_35584.png) Category类中使用的注解如下:![只有多对一使用注解方式,其他的关联映射在反向生成的配置文件中](https://img-ask.csdn.net/upload/201709/16/1505533773_321114.png) Account类中使用的注解如下:![图片说明](https://img-ask.csdn.net/upload/201709/16/1505538562_667852.png) hql语句如下:![图片说明](https://img-ask.csdn.net/upload/201709/16/1505534010_85576.png) 在完全用配置文件的情况下可以执行,总觉得是注解的问题导致查询时找不到account字段,请大侠帮忙分析下是哪里出了问题?
Hibernate向Mysql数据库插入数据出现乱码问号
在MyEclipse环境下向Mysql数据库插入数据出现乱码问号,于是做了如下设置: MyEclipse字符编码已经设为utf-8(window->preference...设置),MySQL的my.ini下设为default-character-set=utf8,hibernate.cfg.xml下<property name="connection.url">jdbc:mysql://localhost:3306/users?useUnicode=true&amp;characterEncoding=utf-8 </property> 这是就插入不了数据了,为什么啊?
hibernate异常update: 0 actual row count: 0 expected: 1
今天在使用hibernate update的时候,抛了这样的一个异常。 org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1 ... 对hibernate底层还不甚熟悉,不知道怎样解决,以及它发生的原因是什么?是否是hibernate真的当发现被update的po没有做任何修改时,就会抛出这个? 下面是具体的代码: Product product = (Product)service().getById(Product.class, Long.valueOf(id)); copy(product,form); //将form中数据拷贝到product product.setId(Long.valueOf(id)); service().update(product); -- 期待各位的回答! --- google里面的说明是, You tried to delete an object that was allready deleted from the database. 会出现这个。 当我这里已经前后的逻辑都没有删除的操作。 [b]问题补充:[/b] 你不能这么修改主键吧 --- 这个id的值是一样的。也会有影响么?会影响hibernate对象的状态?
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
本篇文章主要讲解 token、session 等用户认证方案的区别并分析常见误区,以及如何通过前后端的配合实现完善的访问拦截,为下一步权限控制的实现打下基础。
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
漫话:什么是平衡(AVL)树?这应该是把AVL树讲的最好的文章了
这篇文章通过对话的形式,由浅入深带你读懂 AVL 树,看完让你保证理解 AVL 树的各种操作,如果觉得不错,别吝啬你的赞哦。 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
《C++ Primer》学习笔记(六):C++模块设计——函数
专栏C++学习笔记 《C++ Primer》学习笔记/习题答案 总目录 https://blog.csdn.net/TeFuirnever/article/details/100700212 —————————————————————————————————————————————————————— 《C++ Primer》习题参考答案:第6章 - C++模块设计——函数 文章目录专栏C+...
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
so easy! 10行代码写个"狗屁不通"文章生成器
前几天,GitHub 有个开源项目特别火,只要输入标题就可以生成一篇长长的文章。背后实现代码一定很复杂吧,里面一定有很多高深莫测的机器学习等复杂算法不过,当我看了源代码之后这程序不到50
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问

相似问题

1
Hibernate-jpa查询某个数据表是否存在以及实现创建
2
hibernate连接本地MySQL数据库报错
2
数据库 多对一与多对多关系糊里糊涂 帮忙分析分析
3
hibernate 连接数据库报错 获取xml失败 求大佬帮忙看一下
1
Hibernate *.hbm.xml table 属性:其它数据库的表
2
使用maven+spring+hibernate开发时,无法自动在数据库中建表?
0
Hibernate查询打印出来不输数据库格式而是一堆数字,为什么,指定ID查询就正常
2
JUnit 测试hibernate添加数据控制台有insert语句,但数据库无数据
0
hibernate数据一对多,多对一关系维护问题
4
毕业设计最后一个模块,如何将数据库中的数据做成图表打印在网页上
0
请问hibernate mysql如何将一个数据库提取出来的Entity作为源保存到另外一个数据库
2
Hibernate更新、删除后数据库无变化
3
hibernate+struts连接数据库报错WARN: SQL Error: 102, SQLState: S0001怎么解决?
3
[新手求教]eclipse下创建hibernate configurations时classpath报错
1
Hibernate出错java.lang.Error: Unresolved compilation problem:
2
使用struts2+Hibernate4上传实现头像保存,并将图片路径存储至数据库,且显示在jsp页面
0
java多数据库建表,字段操作,注释操作
2
Hibernate未报error但是运行不成功
2
報錯org.hibernate.AnnotationException: Associated class not found: java.lang.String
2
怎么理解Spring JDBC,MyBatis 都是基于数据源的Connection访问数据库,Hibernate就不是吗?