是这样的 现在我有两张表 USERS 和IPMAC表 IPMAC表中有个userid外键关联着USERS
做了相关映射后
现在查 from ipmac 得出的结果 IPMAC表 一般信息 如IP可以查到,但是USERS对象查询结果为空
如果使用select i.users from Ipmac i 却可以查到users对象
在线求助各位大牛,附上配置文件等Users.javapackage cn.com.sedee.centermanager.hibernate;import java.util.HashSet;
import java.util.Set;/**
* Users entity.
*
* @author MyEclipse Persistence Tools
*/public class Users implements java.io.Serializable { // Fields private Long id;
private String username;
private String password;
private String fullname;
private String res;
private Set roleses = new HashSet(0);
private Set rightses = new HashSet(0);
private Set bmdmbs = new HashSet(0);
private Set wflsbs = new HashSet(0); // Constructors /** default constructor */
public Users() {
} /** full constructor */
public Users(String username, String password, String fullname,
String res, Set roleses, Set rightses, Set bmdmbs, Set wflsbs) {
this.username = username;
this.password = password;
this.fullname = fullname;
this.res = res;
this.roleses = roleses;
this.rightses = rightses;
this.bmdmbs = bmdmbs;
this.wflsbs = wflsbs;
} // Property accessors public Long getId() {
return this.id;
} public void setId(Long id) {
this.id = id;
} public String getUsername() {
return this.username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
} public String getFullname() {
return this.fullname;
} public void setFullname(String fullname) {
this.fullname = fullname;
} public String getRes() {
return this.res;
} public void setRes(String res) {
this.res = res;
} public Set getRoleses() {
return this.roleses;
} public void setRoleses(Set roleses) {
this.roleses = roleses;
} public Set getRightses() {
return this.rightses;
} public void setRightses(Set rightses) {
this.rightses = rightses;
} public Set getBmdmbs() {
return this.bmdmbs;
} public void setBmdmbs(Set bmdmbs) {
this.bmdmbs = bmdmbs;
} public Set getWflsbs() {
return this.wflsbs;
} public void setWflsbs(Set wflsbs) {
this.wflsbs = wflsbs;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
if (((Users)obj).getId() == this.getId()) {
return true;
}
return false; }}Ipmac.javapackage cn.com.sedee.centermanager.hibernate; import java.math.BigDecimal;/**
* Ipmac entity. @author MyEclipse Persistence Tools
*/public class Ipmac implements java.io.Serializable { // Fields private Long id;
private Users users;
private String ip;
private String mac;
private Long scbj;
private String byzd1;
private String byzd2;
private String bz; // Constructors /** default constructor */
public Ipmac() {
} /** minimal constructor */
public Ipmac(Users users) {
this.users = users;
} /** full constructor */
public Ipmac(Users users, String ip, String mac, Long scbj,
String byzd1, String byzd2, String bz) {
this.users = users;
this.ip = ip;
this.mac = mac;
this.scbj = scbj;
this.byzd1 = byzd1;
this.byzd2 = byzd2;
this.bz = bz;
} // Property accessors public Long getId() {
return this.id;
} public void setId(Long id) {
this.id = id;
} public Users getUsers() {
return this.users;
} public void setUsers(Users users) {
this.users = users;
} public String getIp() {
return this.ip;
} public void setIp(String ip) {
this.ip = ip;
} public String getMac() {
return this.mac;
} public void setMac(String mac) {
this.mac = mac;
} public Long getScbj() {
return this.scbj;
} public void setScbj(Long scbj) {
this.scbj = scbj;
} public String getByzd1() {
return this.byzd1;
} public void setByzd1(String byzd1) {
this.byzd1 = byzd1;
} public String getByzd2() {
return this.byzd2;
} public void setByzd2(String byzd2) {
this.byzd2 = byzd2;
} public String getBz() {
return this.bz;
} public void setBz(String bz) {
this.bz = bz;
}}Users.hbm.xml<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="cn.com.sedee.centermanager.hibernate.Users" table="USERS" schema="SEDMANAGER">
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SQ_USERS</param>
</generator>
</id>
<property name="username" type="java.lang.String">
<column name="USERNAME" length="20" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="200" />
</property>
<property name="fullname" type="java.lang.String">
<column name="FULLNAME" length="100" />
</property>
<property name="res" type="java.lang.String">
<column name="REMARKS" />
</property>
<set name="roleses" table="USERS_ROLES" schema="SEDMANAGER" lazy="false">
<key>
<column name="USER_ID" precision="22" scale="0" not-null="true" />
</key>
<many-to-many entity-name="cn.com.sedee.centermanager.hibernate.Roles">
<column name="ROLE_ID" precision="22" scale="0" not-null="true" />
</many-to-many>
</set>
<set name="rightses" table="USERS_RIGHTS" schema="SEDMANAGER" lazy="false">
<key>
<column name="USER_ID" precision="22" scale="0" not-null="true" />
</key>
<many-to-many entity-name="cn.com.sedee.centermanager.hibernate.Rights">
<column name="RIGHTS_ID" length="20" not-null="true" />
</many-to-many>
</set>
<set name="bmdmbs" table="USERS_DEPARTMENTS" schema="SEDMANAGER">
<key>
<column name="USERS_ID" precision="22" scale="0" />
</key>
<many-to-many entity-name="cn.com.sedee.centermanager.hibernate.Bmdmb">
<column name="BMDM_ID" precision="22" scale="0" />
</many-to-many>
</set>
<set name="wflsbs" inverse="true">
<key>
<column name="CLR_ID" precision="22" scale="0" />
</key>
<one-to-many class="cn.com.sedee.centermanager.hibernate.Wflsb" />
</set>
</class>
</hibernate-mapping>Ipmac.hbm.xml<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="cn.com.sedee.centermanager.hibernate.Ipmac" table="IPMAC" schema="SEDMANAGER">
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="sequence" >
<param name="sequence">SQ_IPMAC</param>
</generator>
</id>
<many-to-one name="users" class="cn.com.sedee.centermanager.hibernate.Users" fetch="select">
<column name="USERID" precision="22" scale="0" not-null="true" />
</many-to-one>
<property name="ip" type="java.lang.String">
<column name="IP" length="20" />
</property>
<property name="mac" type="java.lang.String">
<column name="MAC" length="40" />
</property>
<property name="scbj" type="java.lang.Long">
<column name="SCBJ" precision="22" scale="0" />
</property>
<property name="byzd1" type="java.lang.String">
<column name="BYZD1" length="50" />
</property>
<property name="byzd2" type="java.lang.String">
<column name="BYZD2" length="50" />
</property>
<property name="bz" type="java.lang.String">
<column name="BZ" length="100" />
</property>
</class>
</hibernate-mapping>
做了相关映射后
现在查 from ipmac 得出的结果 IPMAC表 一般信息 如IP可以查到,但是USERS对象查询结果为空
如果使用select i.users from Ipmac i 却可以查到users对象
在线求助各位大牛,附上配置文件等Users.javapackage cn.com.sedee.centermanager.hibernate;import java.util.HashSet;
import java.util.Set;/**
* Users entity.
*
* @author MyEclipse Persistence Tools
*/public class Users implements java.io.Serializable { // Fields private Long id;
private String username;
private String password;
private String fullname;
private String res;
private Set roleses = new HashSet(0);
private Set rightses = new HashSet(0);
private Set bmdmbs = new HashSet(0);
private Set wflsbs = new HashSet(0); // Constructors /** default constructor */
public Users() {
} /** full constructor */
public Users(String username, String password, String fullname,
String res, Set roleses, Set rightses, Set bmdmbs, Set wflsbs) {
this.username = username;
this.password = password;
this.fullname = fullname;
this.res = res;
this.roleses = roleses;
this.rightses = rightses;
this.bmdmbs = bmdmbs;
this.wflsbs = wflsbs;
} // Property accessors public Long getId() {
return this.id;
} public void setId(Long id) {
this.id = id;
} public String getUsername() {
return this.username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return this.password;
} public void setPassword(String password) {
this.password = password;
} public String getFullname() {
return this.fullname;
} public void setFullname(String fullname) {
this.fullname = fullname;
} public String getRes() {
return this.res;
} public void setRes(String res) {
this.res = res;
} public Set getRoleses() {
return this.roleses;
} public void setRoleses(Set roleses) {
this.roleses = roleses;
} public Set getRightses() {
return this.rightses;
} public void setRightses(Set rightses) {
this.rightses = rightses;
} public Set getBmdmbs() {
return this.bmdmbs;
} public void setBmdmbs(Set bmdmbs) {
this.bmdmbs = bmdmbs;
} public Set getWflsbs() {
return this.wflsbs;
} public void setWflsbs(Set wflsbs) {
this.wflsbs = wflsbs;
}
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
if (((Users)obj).getId() == this.getId()) {
return true;
}
return false; }}Ipmac.javapackage cn.com.sedee.centermanager.hibernate; import java.math.BigDecimal;/**
* Ipmac entity. @author MyEclipse Persistence Tools
*/public class Ipmac implements java.io.Serializable { // Fields private Long id;
private Users users;
private String ip;
private String mac;
private Long scbj;
private String byzd1;
private String byzd2;
private String bz; // Constructors /** default constructor */
public Ipmac() {
} /** minimal constructor */
public Ipmac(Users users) {
this.users = users;
} /** full constructor */
public Ipmac(Users users, String ip, String mac, Long scbj,
String byzd1, String byzd2, String bz) {
this.users = users;
this.ip = ip;
this.mac = mac;
this.scbj = scbj;
this.byzd1 = byzd1;
this.byzd2 = byzd2;
this.bz = bz;
} // Property accessors public Long getId() {
return this.id;
} public void setId(Long id) {
this.id = id;
} public Users getUsers() {
return this.users;
} public void setUsers(Users users) {
this.users = users;
} public String getIp() {
return this.ip;
} public void setIp(String ip) {
this.ip = ip;
} public String getMac() {
return this.mac;
} public void setMac(String mac) {
this.mac = mac;
} public Long getScbj() {
return this.scbj;
} public void setScbj(Long scbj) {
this.scbj = scbj;
} public String getByzd1() {
return this.byzd1;
} public void setByzd1(String byzd1) {
this.byzd1 = byzd1;
} public String getByzd2() {
return this.byzd2;
} public void setByzd2(String byzd2) {
this.byzd2 = byzd2;
} public String getBz() {
return this.bz;
} public void setBz(String bz) {
this.bz = bz;
}}Users.hbm.xml<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="cn.com.sedee.centermanager.hibernate.Users" table="USERS" schema="SEDMANAGER">
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">SQ_USERS</param>
</generator>
</id>
<property name="username" type="java.lang.String">
<column name="USERNAME" length="20" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="200" />
</property>
<property name="fullname" type="java.lang.String">
<column name="FULLNAME" length="100" />
</property>
<property name="res" type="java.lang.String">
<column name="REMARKS" />
</property>
<set name="roleses" table="USERS_ROLES" schema="SEDMANAGER" lazy="false">
<key>
<column name="USER_ID" precision="22" scale="0" not-null="true" />
</key>
<many-to-many entity-name="cn.com.sedee.centermanager.hibernate.Roles">
<column name="ROLE_ID" precision="22" scale="0" not-null="true" />
</many-to-many>
</set>
<set name="rightses" table="USERS_RIGHTS" schema="SEDMANAGER" lazy="false">
<key>
<column name="USER_ID" precision="22" scale="0" not-null="true" />
</key>
<many-to-many entity-name="cn.com.sedee.centermanager.hibernate.Rights">
<column name="RIGHTS_ID" length="20" not-null="true" />
</many-to-many>
</set>
<set name="bmdmbs" table="USERS_DEPARTMENTS" schema="SEDMANAGER">
<key>
<column name="USERS_ID" precision="22" scale="0" />
</key>
<many-to-many entity-name="cn.com.sedee.centermanager.hibernate.Bmdmb">
<column name="BMDM_ID" precision="22" scale="0" />
</many-to-many>
</set>
<set name="wflsbs" inverse="true">
<key>
<column name="CLR_ID" precision="22" scale="0" />
</key>
<one-to-many class="cn.com.sedee.centermanager.hibernate.Wflsb" />
</set>
</class>
</hibernate-mapping>Ipmac.hbm.xml<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="cn.com.sedee.centermanager.hibernate.Ipmac" table="IPMAC" schema="SEDMANAGER">
<id name="id" type="java.lang.Long">
<column name="ID" precision="22" scale="0" />
<generator class="sequence" >
<param name="sequence">SQ_IPMAC</param>
</generator>
</id>
<many-to-one name="users" class="cn.com.sedee.centermanager.hibernate.Users" fetch="select">
<column name="USERID" precision="22" scale="0" not-null="true" />
</many-to-one>
<property name="ip" type="java.lang.String">
<column name="IP" length="20" />
</property>
<property name="mac" type="java.lang.String">
<column name="MAC" length="40" />
</property>
<property name="scbj" type="java.lang.Long">
<column name="SCBJ" precision="22" scale="0" />
</property>
<property name="byzd1" type="java.lang.String">
<column name="BYZD1" length="50" />
</property>
<property name="byzd2" type="java.lang.String">
<column name="BYZD2" length="50" />
</property>
<property name="bz" type="java.lang.String">
<column name="BZ" length="100" />
</property>
</class>
</hibernate-mapping>
解决方案 »
- java将oracle数据库中的数据表读出来写入到xml文件
- 高手快来,奇怪问题
- 菜鸟遇到问题,望大侠相助!
- weblogic启动时报Not enough space是为什么?
- 菜鸟:就是想调用远程EJB接口的一个方法,打印一句话,报 EJB not bound
- 我花三天没有解决的hibernate问题 只要解决问题一定给100分
- EJB3 问题
- jaee
- JAVA 制图
- ??新手求助??
- java.lang.ClassNotFoundException: org.apache.Struts2.dispatcher.FilterDispatcher
- springmvc Json Jquery easyui 传值问题
<column name="USERID" precision="22" scale="0" not-null="true" />
</many-to-one>
这个跟lazy属性相关!
Hibernate默认lazy="true"这样你直接查询的时候、由于你配置的是fetch=select、select查出的是N+1条记录,用了lazy=true,延迟加载的话,select在查询时只会查出主表记录,也就是1。
你直接查询i.users数据,此时就会自动在执行查询,查出N(users一方的数据)。
这个时候如果你想每次都自动查询N的一方的数据就配置lazy="false"