mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
- A patch will assign initial version values to the entities - Deprecated TransactionUtil in favour of the RetryingTransactionHelper - Renamed RetryingTransactionHelper.Callback to RetryingTransactionHelper.RetryingTransactionCallback The name Callback clashes with many other classes in the classpath - Moved loads of components to be included in the retry behaviour Duplicate name checks - This is done using a query, but the entity update is not written to the database early - Concurrent adds of the same-named child node will only fail at the end of the transaction - TODO: Detect the duplicate violation during transaction retrying Workaround for ADMLuceneTest - Disable session size resource management during tests git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5823 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
174 lines
4.9 KiB
XML
174 lines
4.9 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
|
|
<!DOCTYPE hibernate-mapping PUBLIC
|
|
'-//Hibernate/Hibernate Mapping DTD 3.0//EN'
|
|
'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'>
|
|
|
|
<hibernate-mapping>
|
|
|
|
<class
|
|
name="org.alfresco.repo.domain.hibernate.TransactionImpl"
|
|
proxy="org.alfresco.repo.domain.Transaction"
|
|
table="alf_transaction"
|
|
dynamic-update="false"
|
|
dynamic-insert="false"
|
|
select-before-update="false"
|
|
lazy="true"
|
|
optimistic-lock="version" >
|
|
<!-- auto-generated ID -->
|
|
<id name="id" column="id" type="long" >
|
|
<generator class="native" />
|
|
</id>
|
|
<!-- Optimistic locking -->
|
|
<version column="version" name="version" type="long" />
|
|
<!-- forward assoc to server IP -->
|
|
<many-to-one
|
|
name="server"
|
|
class="org.alfresco.repo.domain.hibernate.ServerImpl"
|
|
column="server_id"
|
|
lazy="proxy"
|
|
fetch="select"
|
|
unique="false"
|
|
not-null="false"
|
|
cascade="none" />
|
|
<property name="changeTxnId" column="change_txn_id" type="string" length="56" not-null="true" />
|
|
</class>
|
|
|
|
<class
|
|
name="org.alfresco.repo.domain.hibernate.ServerImpl"
|
|
proxy="org.alfresco.repo.domain.Server"
|
|
table="alf_server"
|
|
dynamic-update="false"
|
|
dynamic-insert="false"
|
|
select-before-update="false"
|
|
lazy="true"
|
|
optimistic-lock="version" >
|
|
<!-- auto-generated ID -->
|
|
<id name="id" column="id" type="long" >
|
|
<generator class="native" />
|
|
</id>
|
|
<natural-id>
|
|
<property name="ipAddress" column="ip_address" type="string" length="15" not-null="true" />
|
|
</natural-id>
|
|
<!-- Optimistic locking -->
|
|
<version column="version" name="version" type="long" />
|
|
</class>
|
|
|
|
<query name="server.getServerByIpAddress">
|
|
select
|
|
server
|
|
from
|
|
org.alfresco.repo.domain.hibernate.ServerImpl as server
|
|
where
|
|
server.ipAddress = :ipAddress
|
|
</query>
|
|
|
|
<query name="txn.GetLastTxnIdForStore">
|
|
select
|
|
max(txn.id)
|
|
from
|
|
org.alfresco.repo.domain.hibernate.NodeStatusImpl as status
|
|
join status.transaction as txn
|
|
where
|
|
status.key.protocol = :protocol and
|
|
status.key.identifier = :identifier
|
|
</query>
|
|
|
|
<query name="txn.GetLastTxnId">
|
|
select
|
|
max(txn.id)
|
|
from
|
|
org.alfresco.repo.domain.hibernate.NodeStatusImpl as status
|
|
join status.transaction as txn
|
|
</query>
|
|
|
|
<query name="txn.GetLastRemoteTxnId">
|
|
select
|
|
max(txn.id)
|
|
from
|
|
org.alfresco.repo.domain.hibernate.NodeStatusImpl as status
|
|
join status.transaction as txn
|
|
join txn.server as server
|
|
where
|
|
server.ipAddress != :serverIpAddress
|
|
</query>
|
|
|
|
<query name="txn.CountTransactions">
|
|
select
|
|
count(txn.id)
|
|
from
|
|
org.alfresco.repo.domain.hibernate.TransactionImpl as txn
|
|
</query>
|
|
|
|
<query name="txn.GetNextTxns">
|
|
<![CDATA[
|
|
select
|
|
txn
|
|
from
|
|
org.alfresco.repo.domain.hibernate.TransactionImpl as txn
|
|
where
|
|
txn.id > :lastTxnId
|
|
order by
|
|
txn.id
|
|
]]>
|
|
</query>
|
|
|
|
<query name="txn.GetNextRemoteTxns">
|
|
<![CDATA[
|
|
select
|
|
txn
|
|
from
|
|
org.alfresco.repo.domain.hibernate.TransactionImpl as txn
|
|
join txn.server as server
|
|
where
|
|
txn.id > :lastTxnId and
|
|
server.ipAddress != :serverIpAddress
|
|
order by
|
|
txn.id
|
|
]]>
|
|
</query>
|
|
|
|
<query name="txn.GetTxnUpdateCountForStore">
|
|
select
|
|
count(status.key.guid)
|
|
from
|
|
org.alfresco.repo.domain.hibernate.NodeStatusImpl as status
|
|
join status.transaction as txn
|
|
where
|
|
txn.id = :txnId and
|
|
status.node is not null
|
|
</query>
|
|
|
|
<query name="txn.GetTxnDeleteCountForStore">
|
|
select
|
|
count(status.key.guid)
|
|
from
|
|
org.alfresco.repo.domain.hibernate.NodeStatusImpl as status
|
|
join status.transaction as txn
|
|
where
|
|
txn.id = :txnId and
|
|
status.node is null
|
|
</query>
|
|
|
|
<query name="txn.GetTxnChangesForStore">
|
|
select
|
|
status
|
|
from
|
|
org.alfresco.repo.domain.hibernate.NodeStatusImpl as status
|
|
where
|
|
status.transaction.id = :txnId and
|
|
status.key.protocol = :protocol and
|
|
status.key.identifier = :identifier
|
|
</query>
|
|
|
|
<query name="txn.GetTxnChanges">
|
|
select
|
|
status
|
|
from
|
|
org.alfresco.repo.domain.hibernate.NodeStatusImpl as status
|
|
where
|
|
status.transaction.id = :txnId
|
|
</query>
|
|
|
|
</hibernate-mapping>
|