【问题标题】:Hibernate - Key access休眠 - 密钥访问
【发布时间】:2014-04-09 15:49:52
【问题描述】:

我得到了一个带有 Key 的实体:

公共类 ParamGenerique 实现 Serializable {

private static final long serialVersionUID = 1L;

/** Code type produit */
@Id
private ParamGeneriqueKey key;

在 ParamGeneriqueKey 类中有两列:

/** Champ type param. */
@Column(name="TYPE_PARAM")
private String typeParam = "";
/** Champ valeur param. */
@Column(name="VALEUR_PARAM")
private String valeurParam = "";

我尝试使用休眠进行更新:

Query lQuery = entityMgr.createQuery("UPDATE ParamGenerique p set p.libelleParam = :dest WHERE p.typeParam = :typeparam and p.valeurParam = :valeurparam");
lQuery.setParameter("dest", pDestinataire);
lQuery.setParameter("typeparam", "GESTION_MAIL");
lQuery.setParameter("valeurparam", "DESTINATAIRE");

但有一个错误告诉我 typeParam 在 ParamGenerique 中未定义。

你知道我如何在请求中访问我的密钥的这个变量吗?可能是 p.key.typeParam 之类的?

【问题讨论】:

  • 你的 typeparam 和 valeurparam 有 getter 和 setter 方法吗??
  • Hedley 的回答有效!

标签: java hibernate


【解决方案1】:

您需要引用密钥,而不是它所持有的值

Query lQuery = entityMgr.createQuery("update ParamGenerique p set p.libelleParam = :dest where id = :key);
ParamGeneriqueKey key = new ParamGeneriqueKey();
key.setTypeParam("GESTION_MAIL");
key.setValeurParam("DESTINATAIRE");
lQuery.setParameter("dest", pDestinataire);
lQuery.setParameter("key", key);

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 2011-06-04
    • 2010-10-14
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2014-09-12
    相关资源
    最近更新 更多