/projects/jboss-5.1.0/server/src/main/org/jboss/ejb/plugins/lock/JDBCOptimisticLock.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus · Java · 64 lines · 5 code · 2 blank · 57 comment · 0 complexity · 3cbe0f6478cb7eb1cee3c2fbd11a23aa MD5 · raw file

  1. /*
  2. * JBoss, Home of Professional Open Source.
  3. * Copyright 2008, Red Hat Middleware LLC, and individual contributors
  4. * as indicated by the @author tags. See the copyright.txt file in the
  5. * distribution for a full listing of individual contributors.
  6. *
  7. * This is free software; you can redistribute it and/or modify it
  8. * under the terms of the GNU Lesser General Public License as
  9. * published by the Free Software Foundation; either version 2.1 of
  10. * the License, or (at your option) any later version.
  11. *
  12. * This software is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with this software; if not, write to the Free
  19. * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  20. * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  21. */
  22. package org.jboss.ejb.plugins.lock;
  23. /**
  24. * This class is an optmistic lock implementation.
  25. * It locks tableFields and their values during transaction.
  26. * Locked tableFields and their values are added to the WHERE clause of the
  27. * UPDATE SQL statement when entity is stored.
  28. * The following strategies are supported:
  29. * - fixed group of tableFields
  30. * Fixed group of tableFields is used for locking . The tableFields and their values are
  31. * locked at the beginning of a transaction. The group name must match
  32. * one of the entity's load-group-name.
  33. * - modified strategy
  34. * The tableFields that were modified during transaction are used as lock.
  35. * All entity's field values are locked at the beginning of the transaction.
  36. * The tableFields are locked only after its actual change.
  37. * - read strategy
  38. * The tableFields that were read/modified during transaction.
  39. * All entity's field values are locked at the beginning of the transaction.
  40. * The tableFields are locked only after they were accessed.
  41. * - version-column strategy
  42. * This adds additional version field of type java.lang.Long. Each update
  43. * of the entity will increase the version value by 1.
  44. * - timestamp-column strategy
  45. * Adds additional timestamp column of type java.util.Date. Each update
  46. * of the entity will set the field to the current time.
  47. * - key-generator column strategy
  48. * Adds additional column. The type is defined by user. The key generator
  49. * is used to set the next value.
  50. *
  51. * Note: all optimistic locking related code should be rewritten when in the
  52. * new CMP design.
  53. *
  54. * Note2: done.
  55. *
  56. * @author <a href="mailto:aloubyansky@hotmail.com">Alex Loubyansky</a>
  57. * @version $Revision: 81030 $
  58. */
  59. public final class JDBCOptimisticLock
  60. extends NoLock
  61. {
  62. }