zoukankan      html  css  js  c++  java
  • hibernate的注解

    1.many-to-one

    @ManyToOne
    @JoinColumn(name = "user_id")
    

     2.many-to-many

    /**
    	 * 双向关联关系中,有且仅有一端是作为主体(owner)端存在的,
    	 * 主体端负责维护联接列,对于不需要维护这种关系的从表则通过mappedBy属性进行声明, mappedBy的值指向主体的关联属性.
    	 * joinColumns写的都是本表在中间表的外键名称, inverseJoinColumns写的是另一个表在中间表的外键名称。
    	 * mappedBy跟JoinColumn/JoinTable总是处于互斥的一方. fetch=FetchType.EAGER
    	 * 立即加载,默认为fetch=FetchType.LAZY 懒惰加载
    	 * 
    	 * Set<>中使用了泛型,此处也可以不用指定 targetEntity属性。
    	 * 
    	 */

    /** 积分指标项实体--many to many */
    private java.util.Set<IntegrationItem> integrationItem = new java.util.HashSet<IntegrationItem>();

    	@ManyToMany(fetch = FetchType.LAZY)
    	@Cascade(value = org.hibernate.annotations.CascadeType.SAVE_UPDATE)
    	@JoinTable(name = "sem_R_key_proitem", joinColumns = { @JoinColumn(name = "key_person_id") }, inverseJoinColumns = { @JoinColumn(name = "itegration_item_id") })
    	@OrderBy("id asc")
    	public java.util.Set<IntegrationItem> getIntegrationItem() {
    		return integrationItem;
    	}
    
    	public void setIntegrationItem(
    			java.util.Set<IntegrationItem> integrationItem) {
    		this.integrationItem = integrationItem;
    	} 
    /**
    	 * mappedBy的值指向主体的关联属性 双向关联关系中,有且仅有一端是作为主体(owner)端存在的,
    	 * 主体端负责维护联接列,对于不需要维护这种关系的从表则通过mappedBy属性进行声明, mappedBy的值指向主体的关联属性.
    	 * mappedBy="roles" 表示 Authority为主控方,由Role维护Account相关操作。
    	 */

    /** 重点人员信息实体--many to many */
    private Set<PersonInfo> personInfo = new HashSet<PersonKeyInfo>();

    	@ManyToMany(targetEntity = com.future.sem.entity.PersonInfo.class, mappedBy = "integrationItem", fetch = FetchType.LAZY)
    	public Set<PersonInfo> getPersonInfo() {
    		return personInfo;
    	}
    
    

    3.one-to-one

    /**
         * @OneToOne:一对一关联
         * mappedBy = "account":这里的一对一配置参考了account
         * account是RegisteredUser类中的getAccount(), 不是RegisteredUser类中的
         * account属性,RegisteredUser类中的OneToOne配置就是在getAccount()方法上面配的.
         */
    

      

    @OneToOne(optional=false,mappedBy="account")
    	public RegisteredUser getRegisteredUser() {
    		return registeredUser;
    	}
    

      

    /**
    	 * 双向关联关系中,有且仅有一端是作为主体(owner)端存在的,
    	 * 主体端负责维护联接列,对于不需要维护这种关系的从表则通过mappedBy属性进行声明, mappedBy的值指向主体的关联属性
    	 */
    	// cascade:级联,它可以有有五个值可选,分别是:
    	// * CascadeType.PERSIST:级联新建
    	// * CascadeType.REMOVE : 级联删除
    	// * CascadeType.REFRESH:级联刷新
    	// * CascadeType.MERGE : 级联更新
    	// * CascadeType.ALL : 以上全部四项
    	// @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, targetEntity
    	// = com.future.sem.entity.Account.class)
    	@OneToOne(optional = false, fetch = FetchType.LAZY)
    	@Cascade(value = org.hibernate.annotations.CascadeType.ALL)
    	@JoinColumn(name = "sem_account_id", nullable = true, unique = true)
    	public Account getAccount() {
    		return account;
    	}

      单向关联表:在当前的实体中保存personinfo的id,但不对原来的基础表进行任何操作

    	@OneToOne(optional = false, fetch = FetchType.LAZY)
    	@JoinColumn(name = "person_info_id", unique = true, nullable = false, updatable = false)
    	public PersonInfo getPersonInfo() {
    		return personInfo;
    	}
    

      

  • 相关阅读:
    java:字符串的split方法,使用多个分隔符,分割一个字符串
    mysql 导入txt数据到数据表【原创】
    配置SSH无密码登录【原著】
    springboot 控制台程序读取配置文件(原创)
    Idea开发环境中,开发springboot类型的项目,如果只引入parent节点,不添加依赖节点,maven是不会加载springboot的任何依赖的
    Windows版的OpenJDK下载(Red Hat 提供)
    谈谈php里的IOC控制反转,DI依赖注入(转)
    高质量的工程代码为什么难写 (转)
    系统权限管理设计 (转)
    php mqtt client
  • 原文地址:https://www.cnblogs.com/estellez/p/4898190.html
Copyright © 2011-2022 走看看