【问题标题】:Is apply all associations between entities in hibernate?是在休眠中应用实体之间的所有关联吗?
【发布时间】:2014-05-05 05:09:51
【问题描述】:

我无法确定类型:java.util.Set,在表:员工,列:[org.hibernate.mapping.Column(employeeAddresses)]。所以我有两个实体,比如

  1. 员工:


    employee_id(pk), 员工姓名, 员工类型(fk),

  2. 员工地址:


    employee_address_id, 土地不, 手机号码, 地址类型(fk), employee_id (fk)

当我尝试应用一对多和多对一关联时。我正在超越异常。

【问题讨论】:

    标签: java hibernate annotations


    【解决方案1】:

    你必须写下你从 Emoloyee 实体的单对偶关系和从 EmployeeAddress 实体的反向映射

     class Employee
     {
        @Id
        private employee_id;
    
        private String employee_name;
    
    
        @OneToMany(mappedBy="department")
        private Set<EmployeeAddres> employeeAddress;
    
    
    
     }
    

    和 EmployeeAddres 实体

     class EmployeeAddres
     {
          // add your other attributes (don't put employee_id attribute)
    
         @ManyToOne
         @JoinColumn(name="employee_id")
         private Employee employee;
    
     }
    

    【讨论】:

    • Inemployee:@OneToMany(fetch = FetchType.LAZY, mappedBy="employee") @JoinColumn(name = "employee_address_id", nullable = false) public Set getEmployeeAddresses() { return employeeAddresses ; }
    • 在 EmployeeAddress 实体中:
    • @ManyToOne(targetEntity=Employee.class,fetch = FetchType.LAZY) @JoinColumn(name = "employee_id", referencedColumnName="employee_id",nullable=false) @LazyToOne(LazyToOneOption.NO_PROXY) @ org.hibernate.annotations.NotFound(action=NotFoundAction.IGNORE) public Employee getEmployee() { return employee; }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 2018-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多