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

Sự cố ngủ đông:@OneToMany chú thích trả về các bản sao

Bạn có thể cần sửa đổi phương pháp của mình như sau:

@SuppressWarnings("unchecked")
@Transactional
public Collection<Entry> findEntries() {
    return sessionFactory.getCurrentSession()
      .createCriteria(Entry.class)
      .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
      .list();
}

Ngoài ra, hãy thay đổi addresses thành một Set :

@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name = "id")
private Set<EntryAddress> addresses;

Chỉnh sửa:

Ồ ... Trong EntryAddress bạn có id được định nghĩa là @Id nhưng nó không phải là duy nhất. Bạn nên tạo id khóa chính và để nó tự động tăng lên như bạn làm trong Entry . Sau đó, tạo một trường khác trong EntryAddress đó là khóa ngoại của Entry được gọi là entry_id .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích thước chỉ mục trong MySQL

  2. Cách lưu trữ Kết quả truy vấn trong biến bằng cách sử dụng mysql

  3. Cách thêm mệnh đề where động trong truy vấn codeigniter

  4. MySQL:câu lệnh SELECT có phân biệt chữ hoa chữ thường không?

  5. Chọn mức trung bình từ bảng MySQL với LIMIT