草庐IT

多表关联

全部标签

java - 如何禁用双向关联的 Hibernate 外键约束?

我正在尝试禁用在我的双向关联上生成的外键约束。我已设法为所有单向关联执行此操作,但出于某种原因,它在这里不起作用。我确实知道最近在Hibernate5.x中修复的ContraintMode.NO_CONSTRAINT错误,并且我正在运行最新的Hibernate5.2.6。我的注释目前看起来像这样:classParent{@OneToMany(mappedBy="parent",cascade=CascadeType.ALL,orphanRemoval=true)@OrderColumn(name="childIndex")publicListgetChildren(){returnch

java - Hibernate 因在 ManyToMany 关联上将完全限定的类名添加到属性名而失败

我正在尝试使用ManyToMany关联将两个对象相互映射,但是由于某种原因,当我使用mappedBy属性时,hibernate似乎对我正在映射的内容感到困惑。我的映射唯一奇怪的地方是关联不是在其中一个条目的主键字段上完成的(尽管该字段是唯一的)。表格是:Sequence(idNUMBER,referenceVARCHAR,)Project(idNUMBER)Sequence_Project(proj_idnumberreferencesProject(id),referencevarcharreferencesSequence(reference))对象看起来像(注释在getter上,

java - 传递一个非关联函数来减少

我的程序有这一行:Functionf=(Strings)->s.chars().reduce(0,(a,b)->2*a+b);传递给reduce的函数不是关联的。Reduce的文档说传递的函数必须是关联的。如何将其重写为不破坏reduce契约的表达式? 最佳答案 在当前实现和IFF下,您不会使用并行-您现在拥有的是安全的。显然,如果您同意这些免责声明。或者您显然可以使用for循环创建函数:Functionf=s->{intfirst=s.charAt(0)*2+s.charAt(1);inttotal=first;for(intx=

java - Hibernate,在不加载关联实体的情况下获取外部ID

简单的例子:映射:@EntitypublicclassCity{@Id@GeneratedValueprivateIntegerid;privateStringname;@ManyToOne(fetch=FetchType.LAZY)privateCountrycountry;...@EntitypublicclassCountry{@Id@GeneratedValueprivateIntegerid;privateStringname;...用法:Queryquery=session.createQuery("fromCity");Listcities=query.list();fo

java - 有没有办法减少与 CriteriaQuery(在 JPA 2.0 中)关联的样板代码的数量?

我喜欢类型安全CriteriaQuery带来了JPA2.0,但它也带来了一些样板代码。例如,假设我有一个名为NamedEntity的实体,它只有一个id和一个名为“name”的字符串字段(假设它的唯一约束设置为true)。NamedEntityManager可能如下所示:publicclassNamedEntityManager{//injectusingyourframeworkEntityManagerentityManager;//retrieveallexistingentitiesoftypeNamedEntityfromDBpublicIterablequeryAll(){

同一模型上的django多表

我有巨大的表格,需要将其切成一些较小的表格,例如:竞选_01,竞选_02,...当使用具有不同表名的djangoquerySet作为同一模型,我只知道在模型上设置表名是:模型。_meta.db_table='tablexxx'但是,此方法在单个外壳/请求中不起作用。(仅第一次工作,但下一个工作)->也许是因为它仍然在同一实例上?在第二次尝试设置_meta.db_table='tableyyy'之后,它将出现一个错误“django.db.utils.programmingerror:from-clausefrom-clausefrom-clausefrof-clausefrof-claus

java - 如何使用 Hibernate 获取关联的实体

我正在使用Springrest和Hibernate开发一个应用程序,我想从数据库中获取嵌套记录,就像我正在获取User的Profession,现在我想获取与我之前获取的Profession关联的Users。这是我的Dao类@SuppressWarnings({"unchecked","rawtypes"})publicListgetProfessionById(longid)throwsException{session=sessionFactory.openSession();Criteriacr=session.createCriteria(Profession.class);cr

java - 使用 JPQL 计算关联对象的正确方法

编写此JPA查询的正确方法是什么?我只是在猜测,因为我无法解决或无法在我的JPA书中找到它。Queryquery=em.createQuery("selectmfromMeetingmwherecount(m.attendees)=0");returnquery.getResultList();我目前正在使用Hibernate尝试此操作,但出现mysql错误!ERRORorg.hibernate.util.JDBCExceptionReporter-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQ

java - Hibernate 多对多关联 : left hand side collection contains elements, 但右侧集合为空

我在持久层中遇到了多对多关联的问题。我的场景如下:一个用户可以有多个角色,一个角色可以有多个用户。在测试期间,我遇到了一个奇怪的行为。我创建了角色对象和几个用户对象。角色被设置给每个用户。在此之后,使用DAO保存用户。然后加载其中一个用户以检查他是否获得了在保存用户对象之前传递给他的角色。对用户调用getRoles()表明角色设置正确。为了检查反向是否也有效,使用角色DAO从数据库加载角色对象。但是在角色对象上调用getUsers()只会返回一个空集,尽管它应该包含具有该角色的所有用户。我仔细检查了数据库表,但似乎一切正常。用户、角色和user_role表都已正确填写。那么为什么角色对

java - Java 中的关联、聚合和组合

我正在尝试理解这些术语的含义。我举了几个例子,比如:聚合:Facebook有一个用户组成:facebook中的每个用户都有一个session。关联:人们使用浏览器但是我对我的hasa和usesa示例感到困惑。为什么不能是用户使用facebook帐户或Facebook使用session来验证用户身份?就OOP而言,这是错误的吗?我在哪里遗漏了这个概念? 最佳答案 使用关系意味着两件事->两者可以独立存在->数据从整体分类器(人)流向部分分类器(浏览器)有关系意味着两件事->部分分类器(session)的生命周期依赖于整个分类器(fac