hibernate多表关联查询

情景是这样的 有3张表  教师表 teacher; 学历表edutation(外键teacher_id是教师表的id)  ;  文章表article(外键teacher_id是教师表的id)  
现在我如何通过 文章标题title,文章内容content,第一学历first_edutation,第二学历last_edutation等信息确定教师或者教师列表(查询条件是随机的任意几个)

3个回答

试下这个.欢迎指导
select t.teacher_id from teacher t where t.teacher_id in
(
(select e.teacher_id from edutation e where e.first_edutation='1' and e.last_edutation='2 )
union
(select a.teacher_id from article a where a.title='title' and a.content='content')
)

lixiaozhen007
lixiaozhen007 厉害了
2 年多之前 回复
duoluo9
堕落8 可以,完美
2 年多之前 回复

可以用union 连接查询结果集,文章内容应该不适合当成查询条件

duoluo9
堕落8 是 union 谢谢
2 年多之前 回复

你是说这里面的映射关系不知道怎么查询吗,其实既然你两张表都有teaccherid这个外键,你是想做一个筛选吗?当你有任意一个条件的时候,
就可以查询到对应的theacher对象了,不知道我说的对不对

duoluo9
堕落8 是教师实体没有其它实体的关联关系所以我用hql查教师会出现大量重复,楼上正解使用union
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
hibernate jpa 多表关联查询
多表关联查询,返回的内容也涉及到多张表。那么通过jpa的createQuery方法查询, 返回的是List<Object[]>.这样还需要进一步处理,很麻烦。 请问还有其他方法吗,大神们看过来。。
hibernate多对多关联查询配置
学生、课程、成绩三者 public class Student extends BaseModel { private static final long serialVersionUID = 1L; @Id @GenericGenerator(name = "idGenerator", strategy = "uuid") @GeneratedValue(generator = "idGenerator") @Column(name = "stuId", nullable = false, length = 32) private String stuId; @Column(length = 18) private String name; @Column(length = 4, columnDefinition = "char(4) default '男'") private String sex; @Column(length = 2, columnDefinition = "int(2) default 0") private Integer age; /** * 此处注意,配置级联操作,否则插入时不对class表进行操作 一般对many-to-one,many-to-many不设置级联 默认立即加载 */ @ManyToOne @JoinColumn(name = "classId", insertable = true) private StudentClass studentClass; /** * FetchType.EAGER立刻加载 根据score表的stuId和courseId确定学生课程 */ @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "score", joinColumns = {@JoinColumn(name = "stuId", referencedColumnName = "stuId")}, inverseJoinColumns = @JoinColumn(name = "courseId", referencedColumnName = "courseId")) private Set<Course> courses; /** * 临时存储地址信息,不是数据库表字段 */ @Transient private String address; private StudentInfo studentInfo; @Column(nullable = false) private Date createDate; } public class Course extends BaseModel { private static final long serialVersionUID = 8392508645032834965L; @Id @GenericGenerator(name = "idGenerator", strategy = "uuid") @GeneratedValue(generator = "idGenerator") @Column(name = "courseId", nullable = false, length = 32) private String courseId; @Column(length = 40, nullable = false) private String name; /** * 课时,单位小时 */ @Column(nullable = false) private Integer hour; /** * 课程编号 */ @Column(nullable = false, length = 20) private String courseNum; @Column private Date createDate; @OneToOne(mappedBy = "student") @JoinColumn(name="scoreId") private Score score; } public class Score extends BaseModel { private static final long serialVersionUID = 7050826786056804341L; @Id @GenericGenerator(name = "idGenerator", strategy = "uuid") @GeneratedValue(generator = "idGenerator") @Column(name = "scoreId", nullable = false, length = 32) private String scoreId; @ManyToOne @JoinColumn(name = "courseId", nullable = false) private Course course; @ManyToOne @JoinColumn(name = "stuId", nullable = false) private Student student; @Column private Integer score; @Column(name = "grade", length = 4) private String grade; } 我遍历学生课程及成绩时,获取的成绩为空 for (Student student : list) { System.out.println(student.getName()); Set<Course> courses=student.getCourses(); if (courses!=null&&courses.size()>0) { for (Course course : courses) { System.out.println(course.getName()+":"+course.getScore().getGrade()); } } } Hibernate打印的sql: select courses0_.stuId as stuId10_3_, courses0_.courseId as courseId3_, course1_.courseId as courseId3_0_, course1_.courseNum as courseNum3_0_, course1_.createDate as createDate3_0_, course1_.hour as hour3_0_, course1_.name as name3_0_, score2_.scoreId as scoreId9_1_, score2_.courseId as courseId9_1_, score2_.grade as grade9_1_, score2_.score as score9_1_, score2_.stuId as stuId9_1_, course3_.courseId as courseId3_2_, course3_.courseNum as courseNum3_2_, course3_.createDate as createDate3_2_, course3_.hour as hour3_2_, course3_.name as name3_2_ from score courses0_ inner join studentManager.course course1_ on courses0_.courseId=course1_.courseId left outer join studentManager.score score2_ on course1_.courseId=score2_.stuId left outer join studentManager.course course3_ on score2_.courseId=course3_.courseId where courses0_.stuId=? hibernate用的不精,我想实现从score表中查询指定学生的课程并关联其成绩 烦请高手看看实体配置的有什么问题,应该怎么改
Hibernate 三张表关联 一对多对多 配置
当更新classA时,关联多方(classB)能自动更新,单与classB 关联的多方(Class C)却不能自动更新 classC: <class name="classC" table="classC"> <many-to-one name="classb" class="classB" column="classB_ID" property-ref="idofclassB" /> </class> classB: <hibernate-mapping> <class name="classB" table="classB"> <set name="classC" inverse="true" cascade="all"> <key column="idofclassB" /> <one-to-many class="classC"/> </set> <many-to-one name="classA" class="classA" column="classA_ID" property-ref="classAID" /> </class> classA: <set name="classB" inverse="true" cascade="all"> <key column="idofclassA" /> <one-to-many class="classB"/> </set> classA对应的A表主键是B表的外键,ClassB对应的B表主键是C标的外键。现在情况是saveorupdate()A表的时候,B表能自动更新。 ------------------- classA 对应A表 classB :b表 classC: c表 A表的主键Aid 是b表的外键, b表的bid是c表的外键,这样他们之间就形成了A与B一对多,B与C一对多的关系。 按照上面的配置当我执行A表的更新时,与之对应的B表可以自动更新,但是,与B表象关联的C表却没有更新。 - List item
Hibernate关联查询
Project和User表关联,User表中有一个code字段表示上下级关系。 现在想用Hibernate的QBC查询方式完成以下条件的查询。 用sql表示是: [code="sql"] select p.* from Project p left join User u on p.userId = u.id where p.userId <> ? or u.code || '%' like ? [/code] 不知道如何实现,谢谢大家。 [b]问题补充:[/b] 呵呵,是不是我说的不清楚,没人理我。 就是说Project和User是多对一的关系。现在查询需要的是Project的id不等于一个条件或者Project关联的User的code加上一个%去like一个条件。
hibernate三个表联合查询不出结果
# 求助 //根据分类id查询商品个数 public int findCountCid(Integer cid) { String hql = "select count(*) from Product p join p.categorySecond.category c where c.cid=?"; List<Long> list = (List<Long>) this.getHibernateTemplate().find(hql,cid); if(list != null && list.size() > 0){ return list.get(0).intValue(); } return 0; } ## category表 public class Category { private Integer cid; private String cname; private Set<CategorySecond> categorySeconds=new HashSet<CategorySecond>(); public Set<CategorySecond> getCategorySeconds() { return categorySeconds; } ## categorysecond表 public class CategorySecond { private Integer csid; private String csname; private Category category; private Set<Product> products=new HashSet<Product>(); public Category getCategory() { return category; } public void setCategory(Category category) { this.category = category; } public Set<Product> getProducts() { return products; } public void setProducts(Set<Product> products) { this.products = products; } ## product表 public class Product { private Integer pid; private String pname; private Double market_price; private Double shop_price; private String image; private String pdesc; private Integer is_hot; private Date pdate; //二级分类的外键,使用二级分类的对象 private CategorySecond categorySecond; public CategorySecond getCategorySecond() { return categorySecond; } public void setCategorySecond(CategorySecond categorySecond) { this.categorySecond = categorySecond; } ## 映射关系如下 <many-to-one name="category" lazy="false" class="cn.itcast.shop.category.vo.Category" column="cid"></many-to-one> <!-- 二级分类与商品的关联 --> <set lazy="false" name="products"> <key column="csid"></key> <one-to-many class="cn.itcast.shop.product.vo.Product"/> </set> <many-to-one name="categorySecond" lazy="false" class="cn.itcast.shop.categorysecond.vo.CategorySecond"></many-to-one> <set order-by="csid" name="categorySeconds" lazy="false"> <key column="cid"></key> <one-to-many class="cn.itcast.shop.categorysecond.vo.CategorySecond"/> </set>
Spring+Hibernate多表关联的问题
1.多表关联配置了相关many-to-many 并且在pojo里写了Set 为什么每次添加中间表里都没有数据? 2.是不是添加的控制器如果用spring的simpleFormController继承的话 关联的时候一些外键没法格式化? 因此造成中间表里没有数据? 3.如果中间表里还需要附加其他字段 该怎么办? 比如 student---sid,sname teacher---tid,tname course----sid,tid 我在student的form中有一项是teacher的列表select 在student和teacher的pojo里都有Set对方的代码 添加时用的controller是继承自simpleFormController(其中有一项commandclass我设为了student的pojo) 使用一个共用的DAO,代码段为: [code="java"] ...handleRequest(...request,..response,Command cmd,...)... Student student = (Student)cmd; CommonDAO.saveOrUpdate(student);//如果要添加成功,是否需要在此处加上插入course的语句?问题是,该怎么加,因为teacher的id也包含在cmd里边了吧 [/code] 现在student能进库而course依然为空,为何? [b]问题补充:[/b] 关键之处在于和spring整合 没有人遇到过这个问题吗?
Hibernate多对多关联表问题
我的项目里有门票跟景点两个类 目前设置的是多对多单向关联,即:在门票类里面设置了MANY-TO-MANY,在景点里面没有设置,生成的关联表只有门票的ID跟景点的ID两个字段属性,而且生成的表是readonly只读状态,现在问题来了,查询的时候提示我如下错误: NestedServletException: Request processing failed; nested exception is org.hibernate.ObjectNotFoundException: No row with the given identifier exists 谷歌了一下说是关联表设置问题,可我生成的关联表是只读的,里面也没有数据,我的门票跟景点的主键ID都是自动增长的,想问一下大家,该如何设置好关系??
Hibernate 多对多关联 中间表有多个字段如何配置
例如 :学生 与课程之间是多对多关联,中间表不仅有学生表和课程表的主键,中间表还有其他字段(成绩等),该如何配置,用 JPA如何设置,望大家指点指点|
Hibernate查询
我看有的项目是先建表,通过表来生成实体类,实体类中没有关联关系只有关联对象的主键,所以我想问一下,大家都是怎么用Hibernate的,映射文件中有没有关联关系(one-to-many、many-to-many),查询时怎么查询,关联查询时,有时怎么查询的。
Hibernate 多对多 查询得到的关联集合对象为空
org.springframework.dao.DataIntegrityViolationException: could not insert collection rows: [org.model.Xsb.kcs#081101 ]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert collection rows: [org.model.Xsb.kcs#081101 ] org.hibernate.exception.ConstraintViolationException: could not insert collection rows: [org.model.Xsb.kcs#081101 ] com.microsoft.sqlserver.jdbc.SQLServerException: 违反了 PRIMARY KEY 约束 'PK_XS_KCB'。不能在对象 'dbo.XS_KCB' 中插入重复键。 后来我又在主控表里加了inverse=“true”但由学生get()得到的关联set对象kcs为空
hibernate一对多关联list无法更新
Hibernate一对多数据关联。指的是双向一对多数据关联一个盒子Box有多个卡片card [code="java"] public class Box { @Id private Integer id; @OneToMany(fetch=FetchType.LAZY ) @JoinColumn(name="BOX_ID") @org.hibernate.annotations.Cascade( value={org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN}) @org.hibernate.annotations.IndexColumn(name="POS_NO", base=0) private List<Card> cards = new ArrayList<Card>(); .... } [/code] [code="java"] @Entity @Table(name="CARD") public class Card { @Id private Integer id; @ManyToOne @JoinColumn(name="BOX_ID") private Box box @Column(name="POS_NO") private Integer posno ; .... } [/code] 我如此注释映射是否存在问题? 从一个Box中在删除一个Card时报错!!!执行sql不对 [code="java"] public class Bus { public Box delandGet(Integer boxId, Integer delCardid){ Box bx = getHibernateTemplate().get( Box.class, boxId); List<Card> cds = bx.getCards(); Card del = null; int di = -1; for(int i=0; i<cds.size() ; i++){ Card c = cds.get(i); if(c.id.equals(delCardid){ del = c; di = i; break; } } if(di != -1){ cds.remove(di); del.setBox(null); getHibernateTemplate().delete( del ) ; } } } [/code] 删除始终不成功报错!! Hibernate: update CARD set BOX_ID=null, POS_NO=null where BOX_ID=? and id=? Hibernate: update CARD set BOX_ID=null, POS_NO=null where BOX_ID=? and id=?
关于hibernate多态关联和多态查询问题
大家好,最近在做一个项目开发时,发现一个很奇怪的问题。使用hibernate的get方法获取一个对象时,发现获取不到属于它子类的关联对象集合。请问有没有办法可以获取到? 我的表设计是这样的。 有一张order表(主表),有一张hotelOrder(子表)。两个对象公用一张表。主表中有包含产品集合的属性。产品属性与order属于多对一关系。 但是我发现get方法可以获取到hotelOrder表的基本属性,但是product则获取不到。请大神给我讲解讲解
Hibernate多对多集合对象关联查询的问题
同志们,问一个问题,在hibernate里面.我有一个group类表示群组,person类表示联系人,它们是双向多对多关系 ,如果我想查询联系人姓名包括‘tom’的群组列表,那么hql怎么写? <br /><pre name="code" class="java"> public class Person implements Comparable{ private int id; private String name; private String phone; private String address; private Set groups; } public class Group implements java.lang.Comparable{ private int id; private String name; private String description; private Set persons; } groups=session.createQuery("from Group as g inner join g.persons as p where p.name=?").setString(0, name).list(); </pre> <br />这种方法返回的将是一个 Object列表..<br/><strong>问题补充</strong><br/><div class="quote_title">Blithe 写道</div><div class="quote_div">groups.get(0)</div> <br />首先谢谢,经过调试发现, <br /><pre name="code" class="java">List result=session.createQuery("from Group as g inner join g.persons as p where p.name=?").setString(0, name).list();</pre> <br />result中的每一个条目是一个Object数组,此Object数组有两个元素,Group和Person,所以解决的办法是 <br /><pre name="code" class="java"> List result=session.createQuery("from Group as g inner join g.persons as p where p.name=?").setString(0, name).list(); groups=new ArrayList(); int size=result.size(); for(int i=0;i&lt;size;i++){ Object[] item=(Object[])result.get(i); groups.add(item[0]); } </pre> <br />不过显然这种办法的性能和效率太低了,有没有更好的办法?还是直接用SQL?<br/><strong>问题补充</strong><br/><img src="/images/smiles/icon_arrow.gif"/> 试了试,我觉得正解应该是这样的 <br /><pre name="code" class="java"> List crs=session.createCriteria(Group.class).createAlias("persons", "p").add(Restrictions.eq("p.name", name)).list(); </pre> <br />用HQL实现我做不出来了,不知道有没有高手能够用HQL把上面的条件查询翻译下。<br /><strong>问题补充:</strong><br />上面的条件查询翻译成hql应该是 <br /><pre name="code" class="java"> from Group where persons.name=? </pre> <br />但是执行时会报错 <br /><pre name="code" class="java"> org.hibernate.QueryException: illegal attempt to dereference collection [{synthetic-alias}{non-qualified-property-ref}persons] with element property reference [name] [from com.iflysse.addressbook.domain.Group where persons.name=?] org.hibernate.hql.ast.tree.DotNode$1.buildIllegalCollectionDereferenceException(DotNode.java:46) org.hibernate.hql.ast.tree.DotNode.checkLhsIsNotCollection(DotNode.java:513) org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:221) org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94) org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90) org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:728) org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1216) org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4041) org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3525) org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1762) org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776) org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577) org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281) org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229) org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228) org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160) org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111) org.hibernate.engine.query.HQLQueryPlan.&lt;init&gt;(HQLQueryPlan.java:77) org.hibernate.engine.query.HQLQueryPlan.&lt;init&gt;(HQLQueryPlan.java:56) org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72) org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133) org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112) org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623) com.iflysse.addressbook.dao.GroupDao.search(GroupDao.java:68) com.iflysse.addressbook.action.GroupAction.test(GroupAction.java:180) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) java.lang.reflect.Method.invoke(Unknown Source) org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270) org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) com.ilfysse.utils.HibernateSessionInViewFilter.doFilter(HibernateSessionInViewFilter.java:38) </pre> <br /> <br />看来是不是persons别名的问题?
Hibernate对A表做插入操作,但却把B表的数据删除了,A对象和B对象没有关联关系
Hibernate对A表做插入操作,但却把B表的数据删除了,A对象和B对象没有关联关系,大神给解答一下这是什么原因
hibernate 一对多查询集合封装的问题
<p>首先祝大家端午节快乐。 <br>最近学习hibernate,正用用他做博客,遇到个问题研究两天了也没研究出个什么。 <br>hibernate一对多集合封装的问题,看文档一对多关联set配置中是主键和外键关联, <br>能不能设置这两个表中任意两个字段关联。google也没搜到(可能是我笨)。 <br>不过有种方法通过HQL关联:</p> <pre name="code" class="sql">select tableone ,tablemany from tableone tablemany where tableone.uuid=tablemany.uuid </pre> <p> <br>可这样代表多的关系的那个表(tablemany)hibernate怎么给他封装成成集合? <br>如果我没说明白回复下我在补充。 <br>研究东西总受折。程序员真不易啊。 <br>秀下博客,快做完了就差这块了。 <br><br><br><img src="/upload/attachment/108737/96f678da-9f65-38ca-92f8-0bfa2217591d.jpg" alt=""><br><br><br><img src="/upload/attachment/108739/7b89e181-2b67-3f15-a2bf-33e74f7bbe49.png" alt=""><br> 晕了,没人回答?<br></p>
Hibernate未使用关联模型的多对象查询
现在在公司实习了两个星期了,对于公司代码也熟悉了一点,不知道公司领导怎么想的。下面我说明一下情况。 现在我们做的是一个汽车行业的ERP系统, ORM使用的是Hibernate3.5 关于模型这块,项目经理说不能让用@OneToMany @ManyToMany等等对象关联映射,这样对性能有影响(我个人觉得,首先抛开代码质量不说,这个项目的数据量应该是不用这个方法来提高性能的,你优化一下Hibernate,使用二级缓存我觉得就足够了)而只能直接加一个int字段来指定关联ID。 然后我们就痛苦了,比如一张订货单, 在订货单里面指定了品牌,用途,制造商,颜色,等等信息,都是用的指定ID方式, 当我在页面当中要显示出来的时候,除非信息都在一张表(相当于HQL也只能用在一张表包含需要信息的情况下),要不然就得自己写SQL放到封装好的一个工具类里面得到一个List<Object[]>; 然后得新建一个VO,把你包含的所有信息用for循环遍历出来一个object[] 在根据数据查询中的下标来转型数据,放入VO中 页面当中也是不能使用原来的实体了。(其实用Model1.Model2.Filed1这种方式多方便啊) 得用VO,真的不知道PM不让用关联映射的理由何在?各位有碰见过这种情况吗?你们碰见又是怎么解决的啊? 关于未指定关联对象,只有ID字段的多对象关联查询你们有什么好一点的办法没有啊?
hibernate中的多表关联的使用
假设现在有5张表,A表中的主键是B表的外键,B表的主键是C表的外键,C表的主键是D表的外键,D表的主键是E表的外键, 那么我查询的时候,只查询出E表中的值 然后能不能通过E表中D表的外键.D表中C表的外键.C表中B表的外键.B表中A表的外键.A表中的一些字段。 这样调用行不行啊,每一个外键都是实体类,求大神指教!谢谢
hibernate导出表以后,数据库中为什么没有多对多关系表?
hibernate中实体表对象我建了多对多关联映射,前几天导出表的时候,数据库里有基本表和多对多关系表,现在重新导出表的时候,数据库中只有基本表而没有多对多关系表,怎么回事啊。。。拜托。。。 hibernate明明都发了建多对多关系表的语句,数据库里怎么没有啊??? create table t_car_sp (carId int not null, spId int not null, primary key (carId, spId)) create table t_dd_sp (ddId int not null, spId int not null, primary key (ddId, spId)) create table t_store_sp (storeId int not null, spId int not null, primary key (storeId, spId)) 为什么啊。。。
Hibernate一对多关联,能查询,但不能联结插入
java程序: Account.java package test; import java.util.Set; public class Account { int aid; String name = null; String password = null; Set email_Adr; /** * @return Returns the name. */ public String getName() { return name; } /** * @param name * The name to set. */ public void setName(String name) { this.name = name; } /** * @return Returns the password. */ public String getPassword() { return password; } /** * @param password * The password to set. */ public void setPassword(String password) { this.password = password; } public int getAid() { return aid; } public void setAid(int id) { this.aid = id; } public Set getEmail_Adr() { return email_Adr; } public void setEmail_Adr(Set email) { this.email_Adr = email; } } Email_Adr.java package test; import java.util.HashSet; import java.util.Set; public class Email_Adr { int eid; String emailAdrr; Account account; public Account getAccount() { return account; } public void setAccount(Account account) { this.account = account; } public int getEid() { return eid; } public void setEid(int id) { this.eid = id; } public String getEmailAdrr() { return emailAdrr; } public void setEmailAdrr(String emailAdrr) { this.emailAdrr = emailAdrr; } } 数据库描述: CREATE TABLE `account` ( `aid` int(6) unsigned NOT NULL auto_increment, `name` char(10) default NULL, `password` char(10) default NULL, PRIMARY KEY (`aid`) ) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=gbk; CREATE TABLE `email_adr` ( `eid` int(6) unsigned NOT NULL auto_increment, `emailAdrr` varchar(20) default NULL, `aaid` tinyint(4) default NULL, PRIMARY KEY (`eid`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=gbk; 配置文件: Account.hbm.xml <?xml version="1.0" encoding="GBK"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="test.Account" table="account"> <id name="aid" column="aid"> <generator class="assigned" /> </id> <property name="name" /> <property name="password" /> <set name="Email_Adr" table="email_adr" lazy="true" cascade="all" inverse="true"> <key column="aaid" ></key> <one-to-many class="test.Email_Adr" /> </set> </class> </hibernate-mapping> Email: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="test.Email_Adr" table="email_adr"> <id name="eid" column="eid"> <generator class="assigned" /> </id> <many-to-one name="Account" column="aaid" class="test.Account" cascade="all" ></many-to-one> <property name="emailAdrr" /> </class> </hibernate-mapping> 测试程序: package test; import org.hibernate.*; import org.hibernate.cfg.Configuration; import java.util.Set; import java.util.HashSet; import java.sql.*; import java.util.List; import java.util.Iterator; public class TestOneToMany { SessionFactory sf; Session session; public TestOneToMany () { try { Configuration cfg = new Configuration (); sf = cfg.configure ().buildSessionFactory (); } catch (HibernateException ex) { ex.printStackTrace (); } } public void doCreate () { try { session = sf.openSession (); Transaction tx = session.beginTransaction (); // Account acnt = new Account(); // Query query = session.createQuery("from Account where name= // :name"); // query.setString("name", "gao"); // acnt = (Account) query.list().get(0); // Email_Adr email = new Email_Adr(); // email.setEmailAdrr("sealjifeng@168.com"); Account account = new Account (); account.setName ("abcd"); account.setPassword ("22"); Set emailSet = new HashSet (); Email_Adr email = new Email_Adr (); email.setEmailAdrr ("sealjifeng@168.com"); email.setAccount(account); emailSet.add (email); account.setEmail_Adr (emailSet); session.save (account); //session.save (email); // account.setEmail_Adr(emailSet); // account.getEmail_Adr().add(email); // //session.save(account); // acnt.setEmail_Adr(emailSet); // session.save(acnt); tx.commit (); session.close (); } catch (HibernateException ex) { ex.printStackTrace (); } } public void doQuery () { try { session = sf.openSession (); Query q = session.createQuery ("from Account"); List l = q.list (); Account a = null; Email_Adr eml = null; for (int i = 0; i < l.size (); i++) { a = (Account) l.get (i); System.out.println ("姓名: " + a.getName ()); System.out.println ("密码: " + a.getPassword ()); System.out.print ("所有的email:"); Iterator it = a.getEmail_Adr ().iterator (); while (it.hasNext ()) { eml = (Email_Adr) it.next (); System.out.print (eml.getEmailAdrr () + " "); } System.out.println (); } } catch (HibernateException ex) { ex.printStackTrace (); } finally { try { session.close (); } catch (HibernateException ex2) { } } } public static void main (String[] args) { TestOneToMany t = new TestOneToMany (); //t.doCreate (); t.doQuery(); } } Query可以,但是crete怎么弄也不行。求解
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
程序员,职场上请远离这种人!
对有些职场人来讲,甩锅就是一种生存手段。01.从大学打篮球说起上大学的时候喜欢打篮球,然后我又特别喜欢抢篮板,经常是跳起来的时候没事,落下来的时候偶尔会踩到别人的脚上,于...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
一个读研让我损失了一百万的真实故事
关注我!只要10分钟,包你学会数据分析 毕业后,应该就业还是考研? 我刚出国留学那会儿,就惊讶的发现,外国local95%都不会选择读研 他们说,硕士学费很贵,时间宝贵,老板不认,所以很费 当几乎所有人都是本科学历时,硕士学历反而像个异类 在老板眼里,三年硕士远远不如3年的工作经验实用 他们甚至专门为拒绝高学历者发明了一个词,叫overoccupie...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给袈...
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
【图解算法面试】记一次面试:说说游戏中的敏感词过滤是如何实现的?
版权声明:本文为苦逼的码农原创。未经同意禁止任何形式转载,特别是那些复制粘贴到别的平台的,否则,必定追究。欢迎大家多多转发,谢谢。 小秋今天去面试了,面试官问了一个与敏感词过滤算法相关的问题,然而小秋对敏感词过滤算法一点也没听说过。于是,有了下下事情的发生… 面试官开怼 面试官:玩过王者荣耀吧?了解过敏感词过滤吗?,例如在游戏里,如果我们发送“你在干嘛?麻痹演员啊你?”,由于“麻痹”是一个敏感词,...
GitHub 标星 1.6w+,我发现了一个宝藏项目,作为编程新手有福了!
大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻… 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。 后来自己花了一个星期看完了 Pyt...
杭漂程序员2019的心路历程,还不起助学贷款,交不起房租,披荆斩棘终雨过天晴
一个杭漂2019的心酸历程,一路披荆斩棘终于还是雨过天晴。
我采访了同事,让他掏出了每天都会浏览的干货网站
前言只有光头才能变强。文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y在周六的晚上,我日常去到公司写文章。想写...
相关热词 c# singleton c#中类的默认值是 c#各种进制之间的转换 c# 正则表达式保留汉字 c#后台跨域 c#基础代码大全 c#指定combox选择 c#关系 mono c# 相差毫秒 用c#做一个简易计算器
立即提问