下面列出了org.hibernate.Transaction#begin ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public Transaction beginTransaction() {
checkOpen();
Transaction result = getTransaction();
result.begin();
return result;
}
public Transaction beginTransaction() throws HibernateException {
errorIfClosed();
if ( rootSession != null ) {
// todo : should seriously consider not allowing a txn to begin from a child session
// can always route the request to the root session...
log.warn( "Transaction started on non-root session" );
}
Transaction result = getTransaction();
result.begin();
return result;
}
public void createBars() {
Session session = null;
Transaction tx = null;
session = sessionFactory.openSession();
tx = session.getTransaction();
try {
tx.begin();
for (int i = 156; i < 160; i++) {
final Bar bar = new Bar();
bar.setName("Bar_" + i);
final Foo foo = new Foo("Foo_" + (i + 120));
foo.setBar(bar);
session.save(foo);
final Foo foo2 = new Foo(null);
if (i % 2 == 0)
foo2.setName("LuckyFoo" + (i + 120));
foo2.setBar(bar);
session.save(foo2);
bar.getFooSet().add(foo);
bar.getFooSet().add(foo2);
session.merge(bar);
}
tx.commit();
session.flush();
} catch (final HibernateException he) {
if (tx != null)
tx.rollback();
System.out.println("Not able to open session");
he.printStackTrace();
} catch (final Exception e) {
e.printStackTrace();
} finally {
if (session != null)
session.close();
}
}
/**
* Insert data source.
*
* @param aDataSource
* the a data source
* @throws EMFUserError
* the EMF user error
* @see it.eng.spagobi.tools.datasource.dao.IDataSourceDAO#insertDataSource(it.eng.spagobi.tools.datasource.bo.IDataSource)
*/
@Override
public Integer insertDataSource(IDataSource aDataSource, String organization) throws EMFUserError {
logger.debug("IN");
Session aSession = null;
Transaction tx = null;
Integer id = null;
try {
aSession = getSession();
tx = aSession.beginTransaction();
Criterion aCriterion = Expression.and(Expression.eq("domainCd", "DIALECT_HIB"), Expression.eq("valueCd", aDataSource.getDialectName()));
Criteria criteria = aSession.createCriteria(SbiDomains.class);
criteria.add(aCriterion);
SbiDomains dialect = (SbiDomains) criteria.uniqueResult();
if (dialect == null) {
logger.error("The Domain with value_cd=" + aDataSource.getDialectName() + " does not exist.");
throw new EMFUserError(EMFErrorSeverity.ERROR, 1035);
}
SbiDataSource hibDataSource = toSbiDataSource(aDataSource);
hibDataSource.setDialect(dialect);
hibDataSource.setDialectDescr(dialect.getValueNm());
hibDataSource.setReadOnly(aDataSource.checkIsReadOnly());
disableOtherWriteDefault(aDataSource, hibDataSource, aSession);
hibDataSource.setWriteDefault(aDataSource.checkIsWriteDefault());
hibDataSource.getCommonInfo().setOrganization(organization);
updateSbiCommonInfo4Insert(hibDataSource);
id = (Integer) aSession.save(hibDataSource);
tx.commit();
aSession.flush();
tx.begin();
SbiTenant sbiOrganizations = DAOFactory.getTenantsDAO().loadTenantByName(hibDataSource.getCommonInfo().getOrganization());
SbiOrganizationDatasource sbiOrganizationDatasource = new SbiOrganizationDatasource();
sbiOrganizationDatasource.setSbiDataSource(hibDataSource);
sbiOrganizationDatasource.setSbiOrganizations(sbiOrganizations);
SbiOrganizationDatasourceId idRel = new SbiOrganizationDatasourceId();
idRel.setDatasourceId(id);
idRel.setOrganizationId(sbiOrganizations.getId());
sbiOrganizationDatasource.setId(idRel);
sbiOrganizationDatasource.getCommonInfo().setOrganization(organization);
updateSbiCommonInfo4Insert(sbiOrganizationDatasource);
aSession.save(sbiOrganizationDatasource);
tx.commit();
} catch (HibernateException he) {
logger.error("Error while inserting the data source with id " + ((aDataSource == null) ? "" : String.valueOf(aDataSource.getDsId())), he);
if (tx != null)
tx.rollback();
throw new EMFUserError(EMFErrorSeverity.ERROR, 100);
} finally {
if (aSession != null) {
if (aSession.isOpen())
aSession.close();
logger.debug("OUT");
}
}
return id;
}
public Transaction beginTransaction() throws HibernateException {
errorIfClosed();
Transaction result = getTransaction();
result.begin();
return result;
}
public static Transaction startTransaction(Session s) {
Transaction tx = s.getTransaction();
tx.begin();
return tx;
}
public static void main(String[] args) {
Session s = HibernateConfig.getSession();
Transaction tx= s.getTransaction();
User user = new User();
user.setName("Masoud");
tx.begin();
s.save(user);
tx.commit();
s.close();
}