0
我想创造一个JPQL namedquery,但我不明白它是如何工作的?JPQL:如何构造WHERE子句?
这里我实体:
@Entity
@NamedQueries({
@NamedQuery(name = "Translation.lang",
query = "SELECT t FROM Translation t WHERE t.reference.id = :refId AND t.language.lang = :lang")
})
@Table(name = "T_E_TRANSLATION_TRL")
public class Translation implements java.io.Serializable {
@Id
@Column(name = "TRL_ID", unique = true, nullable = false)
@TableGenerator(name="translationSeqStore",
table="T_S_APP_SEQ_STORE_AST",
pkColumnName="AST_SEQ_NAME",
valueColumnName = "AST_SEQ_VALUE",
pkColumnValue = "T_E_TRANSLATION_TRL.TRL_ID",
allocationSize=1)
@GeneratedValue(strategy=GenerationType.TABLE,
generator="translationSeqStore")
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TRL_REF_ID", nullable = false)
private Reference reference;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TRL_LAN_ID", nullable = false)
private Language language;
@Column(name = "TRL_LABEL", nullable = false, length = 4000)
private String label;
我应该使用LEFT上参考JOIN &语言选择我的这些id的翻译?
谢谢。
好吧,我真的不知道我在做什么。所以,当懒惰和连接出现时,我们必须使用“连接获取”来实现对这些标准的搜索?谢谢。 – MychaL 2012-08-08 12:16:04
你没有_have to_,但它避免了一个额外的查询来获取它,当你尝试和懒洋洋地访问它... – MattR 2012-08-08 12:19:57
oki ...这真的是懒惰模式的重要元素:)谢谢。 – MychaL 2012-08-08 12:27:19