Mysql
 sql >> база данни >  >> RDS >> Mysql

Опитвам се да направя две различни таблици, картографиране на manytoone в една колона за един клас обект

Мисля, че това, което търсите, е обяснено в Hibernate ORM раздел за @Any анотация :

@Any(metaColumn = @Column(name = "userType"))
@AnyMetaDef(name = "PropertyMetaDef", metaType = "string", idType = "long",
            metaValues = {
                    @MetaValue(value = "User", targetEntity = User.class),
                    @MetaValue(value = "LDAP", targetEntity = LDAPUser.class)
            }
    )
@JoinColumn(name="assignedto_id", referencedColumnName="id", insertable=false, updatable=false)   
private Object assignedTo

Но няма да създаде никакви външни ключове. Дори не мисля, че е възможно да се създадат два външни ключа в една и съща колона за различни таблици (има ли изобщо смисъл?).

Като алтернатива, ако двата класа могат да се разширят от общ супер клас, можете да използвате Съпоставяне на наследяване за да постигнете нещо подобно.

Например:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public static class UserEntity {

    @Id
    private Long id;

    ...
}

@Entity
public class User extends UserEntity {
...
}

@Entity
public class LDAPUser extends UserEntity {
...
}

и след това

      @ManyToOne
      @JoinColumn(name="assignedto_id", referencedColumnName="id", insertable=false, updatable=false)   
      private UserEntity assignedto;

Това обаче ще създаде три таблици. Таблицата UserEntity ще има външен ключ на assignedto_id колона. User id и LDAPUser id ще има ограничение за всеки от UserEntity документ за самоличност. По принцип, доближаване до това, което поискахте първоначално.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Множество таблици или една мега-таблица в SQL?

  2. mysql грешно увеличение на колона

  3. как да дам номер на срещане в sql

  4. MySQL:Възможно ли е да се създаде заявка, която оценява данни от различни записи?

  5. JDBC/Connectorj:Разбиране на групирането на връзки