相关疑难解决方法(0)

IDENTITY_INSERT与JPA

我试图将一些假数据插入SQL Server Express数据库.我正在使用这样一些简单的代码:

@Entity
@Table(name = "People")
public class Peeps implements Serializable {

    @Id
    @Column(name = "ID", columnDefinition = "Decimal(10,0)")
    private String id;

    @Column(name = "PERSON_NAME")
    private String name;

}
Run Code Online (Sandbox Code Playgroud)

我调用实体管理器创建上面的类,如下所示:

private EntityManager em = createManager();
private EntityTransaction utx = em.getTransaction();

final Peeps entity = new Peeps();
entity.setId("10002");
entity.setName("Joe");
utx.begin();
em.persist(entity);
utx.commit();
Run Code Online (Sandbox Code Playgroud)

但是,这样做时,我收到一个错误::

 Cannot insert explicit value for identity column in table 'People' when IDENTITY_INSERT is set to OFF
Run Code Online (Sandbox Code Playgroud)

所以我尝试做的是这样的:

em.createNativeQuery("SET IDENTITY_INSERT People ON").executeUpdate();
em.persist(entity);
em.createNativeQuery("SET IDENTITY_INSERT People OFF").executeUpdate();
Run Code Online (Sandbox Code Playgroud)

但是,我仍然得到同样的错误.我的直觉使我相信连接没有被分享.在调用持久性之前,我可以做些什么来指示hibernate将 …

java hibernate jpa

3
推荐指数
1
解决办法
6142
查看次数

使用hibernate的session.connection()运行本机sql的任何问题

在我的项目中,他们以下面提到的方式使用Hibernate的会话,然后在事务中保存实体对象.

Session session = HibernateUtil.getCurrentSession();
session.beginTransaction();

Employee employee = new Employee() ;

employee.setName("someName") ;
employee.setEmailId ("someId")
employee.setID (100000) ;

session.saveOrUpdate(employee) ;

session.getTransaction().commit();
Run Code Online (Sandbox Code Playgroud)

现在我的功能很少,我决定运行本机SQL.下面是我用来运行本机sql的方式.我想在事务中运行查询,所以我决定以下面的方式编写代码

String query = "select name from master_employee where id=?"

Session session = HibernateUtil.getCurrentSession();
session.beginTransaction();

Connection connection = session.connection();
PreparedStatement psStmt = connection.prepareStatement(query);
psStmt.setInt(1,id) ;

ResultSet resultSet = psStmt.executeQuery();
// here i will take data from this result set
psStmt.close();
resultSet.close() ;

// I am not closing the connection object since am taking it from hibernate …
Run Code Online (Sandbox Code Playgroud)

java hibernate jdbc java-ee

1
推荐指数
1
解决办法
2433
查看次数

标签 统计

hibernate ×2

java ×2

java-ee ×1

jdbc ×1

jpa ×1