我一直在使用多对多映射,这里是我的POJO类。
Menu.java:
@Entity
@Table(name = "menu")
public class Menu {
@Id
@Column(name = "menuid")
@GeneratedValue
private int menuid;
@Column(name = "parentid")
private int parentid;
@Column(name = "menuname")
private String menuname;
@Column(name = "url")
private String url;
@Column(name = "status")
private String status;
@Column(name = "usertype")
private String usertype;
@Column(name = "isparent")
private boolean isParent;
private ArrayList<Menu> childMenu;
@ManyToMany(mappedBy="menus")
private List<User> users;
public Menu(Integer menuid){
this.menuid=menuid;
}
public Menu(){
}
使用者爪哇:
@Entity
@Table(name = "user")
public class User implements Serializable {
@Id
@Column(name = "userid")
@GeneratedValue
private Integer userId;
@Column(name = "OUTLET_ID")
private int outletId;
@Column(name = "NAME")
private String name;
@Column(name = "USERTYPE")
private String userType;
@Column(name = "LOGINID")
private String loginId;
@Column(name = "PASSWORD")
private String password;
@Column(name = "CREATEDDATE")
private String createdDate;
@Column(name = "CONTACTNUMBER")
private String contactNumber;
@Column(name = "EMAILID")
private String emailId;
@Column(name = "OUTLETTYPE")
private String outlettype;
@Transient
private String nsec;
@javax.persistence.Transient
ArrayList<Integer> menuid;
@javax.persistence.Transient
ArrayList<Long> clientid;
@javax.persistence.Transient
ArrayList<String> clientName;
@ManyToMany(fetch=FetchType.EAGER) @JsonIgnore
@JoinTable(name="user_menu",joinColumns={@JoinColumn(name="userid")},
inverseJoinColumns={@JoinColumn(name="menuid")})
public List<Menu> menus;
@ManyToMany(fetch=FetchType.EAGER) @JsonIgnore
@JoinTable(name="user_client",joinColumns={@JoinColumn(name="userid")},
inverseJoinColumns={@JoinColumn(name="outletid")})
public List<Client> clients;
public User() {
}
我有用户,菜单和第三个映射表user_menu
这是自动创建的,我成功地得到结果时,在mysql中执行以下查询
select * from menu m inner join user_menu um on m.menuid = um.menuid where um.userid = 41;
我想在Hibernate中写这个查询如何处理这个东西???
最后我找到了我的答案,这是我的hql查询,
String sql = "select m.menuid as menuid,m.parentid as parentid,m.menuname as menuname,m.url as url,m.status as status,m.usertype as usertype,m.isParent as isParent,m.childMenu as childMenu from Menu m join m.users u where u.userId = "+userid +"";
q = session.createQuery(sql).setResultTransformer(Transformers.aliasToBean(Menu.class));
1. 前言 本节课,咱们一起继续聊聊多对多关联映射。通过本节课程,你将了解到: 多对多关联映射的实现; 双向多对多关联映射的实现。 2. 多对多关联映射 首先了解表中的多对多关系,学生表中的数据和课程表中的数据就存在多对多关系。 一名学生可以选修多门课程,一门课程可以供多名学生选修。 数据库通过主外键的机制描述表中的数据之间的关系。对于存在多对多关系的数据表,借助于中间表,分拆成两个一对多(或者多
问题内容: 我正在开发一个处理以下两个实体的应用程序: 产品 (将其命名为X,Y,Z)和 材料 (a,b,c,…)。众所周知,每种产品都有一个配方,指示制造该产品所需的材料。例如,要产生一个X,我们需要2 a,6 c和4 d(X = 2a + 6c + 4d)。 这就是它在数据库表中的反映方式: 第三张表中的“计数”字段是同类材料(本例中为2、6、4)的系数。 所以我想以这种方式编写Product
下面的映射给出的错误为 从db.karateInvoiceDetail引用db.karateInvoice的外键的列数错误。应为1 想法是有一个表,它的组合键为(id、fiscalyear和companyId),而表的组合键为(seqNo、InvoiceId、InvoiceFiscalYear和InvoiceCompanyId)。
1. 前言 通过本节课程的学习,你将发现关联对象之间的微妙关系。相信这种关系对你更深入地认识 HIbernate 有很大的帮助。 通过本节课程,你将了解到: 多对多双向关联映射中哪一方是关系维系者; 级联操作与关系维系者。 2. 关系维系者 新学期开始了,同学们选择了各自喜欢的课程,现在为学生添加选修课程的任务就要落在 Hibernate 的身上。一起来看看 Hibernate 是如何完成这个任务
有两张数据表,通过第三张数据表来表示关联关系,我们称之为多对多的映射 如上图,通过一个中间数据表的两个字段,分别指向两个对象的主键,可以实现多对多映射。所以,Pet.foods(一个 List<Food>) 或者 Food.pets(一个List<Pet>)就是多对多映射。 在 POJO 中配置多对多映射 在 POJO 类中字段中增加注解 @ManyMany: @Table("t_food")
您好,我有多对多映射,在联接表中有额外的列。表结构如下所示。 关系如下 链接 我创建了如下POJO类 Vendor.java 学生。爪哇 测试。爪哇 供应商est.java 供应商学生测试PK。爪哇 Hibernate映射文件,如下所示 vendor.hbm.xml vendor\u student\u测试。hbm。xml 大学生hbm。xml 测验hbm。xml 我刚开始Hibernate,这是