表tx_account 2张表的映射文件如下: <hibernate-mapping package="com.callray.domain"> <class name="TxAccount" table="tx_account"> <id name="id" column="account_id"> <generator class="identity" /> </id> <property name="name" column="account_name"/> <one-to-one name="recordTime" class="TxAgentRecordTime" cascade="all"/> </class> </hibernate-mapping> <class name="TxAgentRecordTime" table="tx_AgentRecordTime"> <id name="agentId" column="agent_id"> <generator class="foreign" > <param name="property">account</param> </generator> </id> <property name="mondaySet" column="monday_set"/> <property name="tuesdaySet" column="tuesday_set"/> <one-to-one name="account" class="TxAccount" constrained="true"/> </class> 如下方式调用 public List<TxAccount> getAll() { List<TxAccount> accounts = getSession().createQuery("FROM TxAccount") .list(); closeSession(); return accounts; } hibernate生成的SQL语句 为什么hibernate生成的不是一条简单的SQL语句呢 还是我的映射配置不对,表原来就存在不能修改 |
|
40分 |
hibernate是默认选择所有列的,sql语句复杂点没关系,不影响什么,主要你是看他查询返回结果是不是你要的
|
我的意思不是说hibernate选择所有列,而是说hibernate产生了多条SQL语句。 |
|
我后面补充了啊~sql语句复杂点没关系,不影响什么,主要你是看他查询返回结果是不是你要的
|
|
结果没有问题呀,但是效率低呀。 |
|
– -!数据量不是很大的话,影响应该不大的,hibernate机制没仔细研究过,如果真讲究效率,就自己封装JDBC吧
|