JPA結構中MYSQL結構翻譯錯誤我有 100% 的 mysql 查詢:SELECT DISTINCT * FROM list_orders LEFT JOIN orders_translate where list_orders._id=orders_translate._order_idquery JPA String query = "SELECT t1 FROM ListOrders t1 LEFT JOIN t1.speakers e WHERE e._id = t1._id";public class OrdersTranslate implements Serializable {private static final long serialVersionUID = 1L;@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Basic(optional = false)@Column(name = "_id")private Long id;@Size(max = 50)@Column(name = "_english_name")private String englishName;@Size(max = 50)@Column(name = "_arabic_name")private String arabicName;@Size(max = 50)@Column(name = "_russian_name")private String russianName;@Size(max = 50)@Column(name = "_french_name")private String frenchName;@Basic(optional = false)@NotNull@Column(name = "_order_id")private int order_id;}公共類 ListOrders 實現 Serializable {private static final long serialVersionUID = 1L;@Id@GeneratedValue(strategy = GenerationType.IDENTITY)@Basic(optional = false)@Column(name = "_id")@SerializedName("_id")private Integer id;@Basic(optional = false)@NotNull@Column(name = "_number_id")@SerializedName("_number_id")private int numberId;@Basic(optional = false)@NotNull@Size(min = 1, max = 50)@Column(name = "name")@SerializedName("name")private String name;@OneToOne(cascade = CascadeType.ALL)private List<OrdersTranslate> speakers;}我得到下一個錯誤:[53, 54] FROM 子句具有'ListOrders t1 LEFT JOINN t1.oerders'和'e',它們沒有用逗號分隔。[42, 53] 標識變量“t1.oerders”未遵循 Java 標識符的規則。[56, 56] 必須為范圍變量聲明提供標識變量。JPA查詢有什么問題?MySQL 查詢工作正常!
1 回答
長風秋雁
TA貢獻1757條經驗 獲得超7個贊
起初 - 如果您在 ListOrders 表中有 OrdersTranslate 數組,則您沒有 OneToOne 連接。這是 OneToMany 加入。
請在您的 ListOrders 課程中嘗試:
@OneToMany(mappedBy="listOrders")
private List<OrdersTranslate> speakers;
在您的 OrdersTranslate 類中:
@ManyToOne
@JoinColumn(name = "_order_id")
private ListOrders listOrders;
然后您的 JPA 查詢將如下所示:
SELECT t1 FROM ListOrders t1 LEFT JOIN t1.speakers e
添加回答
舉報
0/150
提交
取消
