3

如何实现mysql 替换为使用休眠?我在任何地方都找不到这个。

4

2 回答 2

2

我相信,作为 mySQL 扩展行为,它不被直接支持。与所有不受支持的查询语法一样,您可能希望在这种情况下使用本机 SQL。

hibernate 中原生 SQL 支持的参考,可以在这里找到。

于 2013-06-17T15:42:44.903 回答
1

实际上,您可以轻松地使用休眠命名查询。您可以在实体类中使用 Hibernate 映射文件或 Hibernate 注释来完成工作。

使用映射文件。

<hibernate-mapping>
    ......
    <sql-query name="yourNamedReplaceQuery">
         <![CDATA[REPLACE INTO T SELECT * FROM T]]>
    </sql-query>
</hibernate-mapping>

使用注释

@NamedQueries({
    @NamedNativeQuery(
    name = "yourNamedReplaceQuery",
    query = "REPLACE INTO T SELECT * FROM T"
    )
})
@Entity
@Table(name = "your_object", catalog = "test")
public class YourObject implements java.io.Serializable {

调用命名查询。

Query query = session.getNamedQuery("findStockByStockCodeNativeSQL");

更多参考:http ://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html

于 2013-06-17T15:51:55.137 回答