Tôi sử dụng JPA để truy cập cơ sở dữ liệu và chú thích mọi cột có tên chính xác. Bây giờ nếu tôi thực hiện một truy vấn (ví dụ FindAll()) nó trảCột JPA có dấu gạch dưới không chính xác
Unknown column 'program0_.program_id' in 'field list'
Các thông báo lỗi là đúng program_id
không rõ vì tên thật là programId
.
Models: Chương trình
@Entity
@Table(name = "programs")
@XmlRootElement
public class Program implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "programId")
private Long programId;
@ManyToMany
@JoinTable(
name = "programlabels",
joinColumns = {
@JoinColumn(name = "program", referencedColumnName = "programId")},
inverseJoinColumns = {
@JoinColumn(name = "label", referencedColumnName = "labelId")})
private Collection<Label> labels;
}
Label
@Entity
@Table(name = "labels")
@XmlRootElement
public class Label implements Serializable {
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 100)
@Column(name = "labelId")
private String labelId;
}
Query
select program0_.program_id as program_1_5_, ...
Có một lý do tại sao JP Thay đổi "programId" thành "program_id" hoặc tôi có thiếu cấu hình nào không?
cảm ơn
Chỉnh sửa: Xin lỗi quên thêm mã truy vấn/thông tin.
Tôi sử dụng giao diện JpaRepository của dữ liệu Spring và thử truy vấn findAll().
@Repository
public interface ProgramRepository extends JpaRepository<Program, Long> {}
Bạn có thể bao gồm mã Java để thực hiện truy vấn không? – Ascalonian
đã cập nhật bài đăng của tôi. Tôi không viết mã của riêng mình, tôi sử dụng JpaRepository <> từ Spring Data. – KenavR
Kiểm tra http://stackoverflow.com/questions/2536829/hibernate-show-real-sql –