0
최대 절전 모드에서 개체를 어떻게 삭제합니까?최대 절전 모드 삭제
Session session = HibernateSession.getSessionFactory().openSession();
org.hibernate.Transaction tx = session.beginTransaction();
int q = session.createQuery("from Modele where (model='"+u.getModel() +"' and markaid='"+u.getMarki().getId()+"'").executeUpdate();
// session.delete(u);
session.getTransaction().commit();
정보 : 지원되지 않습니다. 대서양 표준시 변환기를 사용하여 ...
session.delete(u)
를 사용하는 대신에 나는이
정보를 얻을 : 삭제 처리에 과도 개체를 처리
CREATE TABLE modele
(
id serial NOT NULL,
markaid integer NOT NULL,
cena numeric(100,2),
model character varying(32),
CONSTRAINT k_glwny PRIMARY KEY (id),
CONSTRAINT obcy FOREIGN KEY (markaid)
REFERENCES marki (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
)
<hibernate-mapping>
<class name="bazaMap.Modele" table="modele" schema="public">
<id name="id" type="int">
<column name="id" />
<generator class="identity" />
</id>
<many-to-one name="marki" class="bazaMap.Marki" fetch="select">
<column name="markaid" not-null="true" />
</many-to-one>
<property name="cena" type="java.lang.Double">
<column name="cena" scale="0" />
</property>
<property name="model" type="string">
<column name="model" length="32" />
</property>
<set name="wypozyczenias" inverse="true">
<key>
<column name="modelid" not-null="true" />
</key>
<one-to-many class="bazaMap.Wypozyczenia" />
</set>
</class>
</hibernate-mapping>
이 나던 일이 너무
session.createQuery("from Modele where model = :mmodel and markaid = :mmarkaid").setParameter("mmodel", u.getModel()).setParameter("mmarkaid", u.getMarki().getId()).executeUpdate();
쿼리를 연결하지 마십시오. Query patern을 사용하는 것이 더 좋습니다. http://tackoverflow.com/questions/14458986/hibernate-having-difficulty-with-character-in-hql/14459137#14459137 – Taky
@Taky : 동적 쿼리를 작성하기 위해 쿼리 매개 변수 또는 조건을 사용하는 것이 좋습니다. (쿼리 개체 패턴은 쿼리 작성을 해결하지 못합니다.) –
@StefanSteinegger : 쿼리 개체 패턴 (http://martinfowler.com/eaaCatalog/queryObject.html) 정의 패턴에 조건 및 쿼리 매개 변수가 포함되어 있다고 생각합니까? – Taky