У меня есть встроенный составной ключ, который состоит из двух колонокHibernate 5.x удалить запись на основе неполного составного идентификатора?
@Embeddable
public static class PK implements Serializable {
private static final long serialVersionUID = 4049628068378058196L;
@Column(name="colA", length=32, nullable=false)
private String colA;
@Column(name = "colB", length=32, nullable=false)
private String colB;
//constructors/getters/setters
}
Есть ли способ, что я могу удалить постоянный объект, используя только colB
значения, например
Serializable id = new String(myColBValue);
Object persistentInstance = session.get(MyObject.class, id);
if (persistentInstance != null) {
session.delete(persistentInstance);
}
или мне придется прибегнуть к используя инструкцию HQL?
в порядке, но как удалить с помощью hql сейчас? PK - это частный объект в объекте объекта. Кажется, он не может разрешить столбец. Hibernate 5 действительно больше проблем, чем работа с отсутствием документации. session.createQuery ("удалить из MyObject, где PK.colB =: colb") \t \t \t \t \t \t \t \t \t .setParameter ("colb", "Foobar") \t \t \t \t \t \t \t \t \t .executeUpdate(); приводит к ошибке «не может выполнить оператор» –