Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hibernate - Có cách nào để nối 2 cột với 1 không?

Giải pháp 1

Tạo chế độ xem cơ sở dữ liệu trên Table1 làm lộ ra khóa ngoại tham chiếu Table2 . Chiếu khóa ngoại từ truy vấn đã đăng của bạn mà bạn vẫn sẽ sử dụng cho chế độ xem. Sau đó, ánh xạ thực thể của bạn với chế độ xem.

Giải pháp 2

Sử dụng công thức tham gia :

Ví dụ:trong thực thể được ánh xạ tới Table1 xác định liên kết nhiều-một với thực thể được ánh xạ tới Table2 (có vẻ là trường hợp sử dụng của bạn):

@ManyToOne
@JoinColumnsOrFormulas({
      @JoinColumnOrFormula([email protected](value="(SELECT t2.serial FROM Table2 t2 WHERE serial1 = t2.serial OR serial2 = t2.serial)", referencedColumnName="serial"))
    })
private Entity2 entity2;

Tuy nhiên, các công thức nối dường như rất mỏng manh trong Hibernate vào thời điểm hiện tại (tôi đã cố gắng làm cho công thức này chỉ hoạt động cho liên kết nhiều-một và tôi phải tạo Entity2 triển khai Serializable; nếu không nó không hoạt động và ném một số NullPointer- lạ và ClassCastException s).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vẽ nhiều biểu đồ với truy vấn Flot, html, PHP và MySql

  2. Giải pháp DBaaS tốt nhất cho MySQL

  3. Chèn vào MySQL từ R

  4. MySQL:Không thể sử dụng SIGNAL trong Trigger

  5. đúng cú pháp để sử dụng gần '?'