当前位置: 首页 > 知识库问答 >
问题:

冬眠

柯宜年
2023-03-14
Table SECRET_AGENT

Columns SecretAgentId, SecrentAgentName

Table SECRET_MISSION

Columns SecretMissionId, SecrentMissionName

JOIN Table

SECRET_AGENT_MISSION

Columns: SecretAgentId,SecretMissionId
class Secret_Agent {
.
.
.

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "SECRET_AGENT_MISSION", joinColumns = { @JoinColumn(name = "SecretAgentId") }, inverseJoinColumns = { @JoinColumn(name = "SecretMissionId") }
private List <Secret_Mission> missions;
.
.
.
}

class Secret_Mission {
.
.
.

@ManyToMany(mappedBy = "missions")
private List <Secret_Agent> agents;
.
.
.
}
Criteria criteria = session.createCriteria(Secret_Agent.class);

criteria.add(Restrictions.isNull("missions"));

另一种方法是使用Crieteria关联,但关联只能与@OneTomany@ManyToOne一起工作!

请在这里帮帮我。

共有1个答案

南门飞
2023-03-14

我假设您的映射是正确的:使用restrictions.isempty(“missions”)-将集合值属性约束为空(来自javadoc)

ps:在Hibernate中最好将映射中的集合初始化为:

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "SECRET_AGENT_MISSION", joinColumns = { @JoinColumn(name = "SecretAgentId") }, inverseJoinColumns = { @JoinColumn(name = "SecretMissionId") }
private List <Secret_Mission> missions = new ArrayList<Secret_Mission>();

并对secret_agent.agents执行相同的操作

 类似资料:
  • 配置类的应用程序侦听器时出现错误 这实际上是我的错误 ** 严重:配置类org的应用程序侦听器时出错。springframework。网状物上下文ContextLoaderListener java。lang.NoClassDefFoundError:javax/servlet/ServletContextListener **在爪哇。lang.ClassLoader。java上的findBoot

  • 问题内容: 这些查询翻译器之间有什么区别(对于Hibernate用户而言,我的意思是不同)。互联网上的一些博客说基于ANTLR的翻译器更快。但是我认为,如果其中一个明显更好,那么Hibernate开发人员将删除另一个。那么..有什么区别?为什么我们都拥有它们?在什么情况下我应该选择第一还是第二?在什么情况下我不应该选择其中一位翻译? 问题答案: 这是 内部休眠配置 ; 它将在升级到版本3时实现 。

  • 我有一个应用程序,它使用hibernate使用注释创建初始数据库。 有人这样做过吗,如果有请告诉我怎么做。或者至少是另一种选择。是否所有的ORM更新都必须用sql脚本手动创建?

  • 我有两个类,“article”包含对“surchargegroup”的@manytoone引用,该“surchargegroup”指定了该文章的附加费。 另一个类“SurchargeGroup”包含一个父对象引用,它可以将附加费继承到“SurchargeGroup”,如果没有设置,则任何父对象都不提供附加费的情况是不可能的。 我现在的问题是,如果我调用“getSurcharge()”方法,我会得到

  • 地址 address_id INT PK AutoIncr 城市Varchar 国家varchar 员工 null