本文整理汇总了Java中javax.persistence.PreUpdate类的典型用法代码示例。如果您正苦于以下问题:Java PreUpdate类的具体用法?Java PreUpdate怎么用?Java PreUpdate使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
PreUpdate类属于javax.persistence包,在下文中一共展示了PreUpdate类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: encode
import javax.persistence.PreUpdate; //导入依赖的package包/类
@PrePersist
@PreUpdate
public void encode(Object target) {
AnnotationCheckingMetadata metadata = AnnotationCheckingMetadata.getMetadata(target.getClass());
if (metadata.isCheckable()) {
StringBuilder sb = new StringBuilder();
for (Field field : metadata.getCheckedFields()) {
ReflectionUtils.makeAccessible(field);
Object value = ReflectionUtils.getField(field, target);
if (value instanceof Date) {
throw new RuntimeException("不支持时间类型字段加密!");
}
sb.append(value).append(" - ");
}
sb.append(MD5_KEY);
LOGGER.debug("加密数据:" + sb);
String hex = MD5Utils.encode(sb.toString());
Field checksumField = metadata.getCheckableField();
ReflectionUtils.makeAccessible(checksumField);
ReflectionUtils.setField(checksumField, target, hex);
}
}
示例2: testUpdateProperties
import javax.persistence.PreUpdate; //导入依赖的package包/类
@Test
public void testUpdateProperties() throws Exception {
User user = new User();
user.name = "Michael";
user.email = "[email protected]";
warpdb.save(user);
Thread.sleep(100);
user.name = "Changed";
user.version = 99;
warpdb.updateProperties(user, "name", "version", "updatedAt");
assertTrue(user.callbacks.contains(PreUpdate.class));
assertTrue(user.callbacks.contains(PostUpdate.class));
assertNotEquals(user.createdAt, user.updatedAt);
assertEquals(System.currentTimeMillis(), user.updatedAt, 500);
// fetch:
User bak = warpdb.fetch(User.class, user.id);
assertNotNull(bak);
assertEquals(user.id, bak.id);
assertEquals("Changed", bak.name);
assertEquals("Changed", bak.name);
assertEquals(99, bak.version);
}
示例3: testUpdate
import javax.persistence.PreUpdate; //导入依赖的package包/类
@Test
public void testUpdate() throws Exception {
User user = new User();
user.name = "Michael";
user.email = "[email protected]";
warpdb.save(user);
Thread.sleep(100);
user.name = "Changed";
user.email = "[email protected]";
warpdb.update(user);
assertTrue(user.callbacks.contains(PreUpdate.class));
assertTrue(user.callbacks.contains(PostUpdate.class));
assertNotEquals(user.createdAt, user.updatedAt);
assertEquals(System.currentTimeMillis(), user.updatedAt, 500);
// fetch:
User bak = warpdb.fetch(User.class, user.id);
assertNotNull(bak);
assertEquals(user.id, bak.id);
assertEquals("Changed", bak.name);
// email is set updatable=false:
assertEquals("[email protected]", bak.email);
assertEquals(user.createdAt, bak.createdAt);
assertEquals(user.updatedAt, bak.updatedAt);
assertEquals(user.version, bak.version);
}
示例4: sanityCheck
import javax.persistence.PreUpdate; //导入依赖的package包/类
/**
* Checks, if constraints are kept during the previous operations.
*
* @throws ConstraintViolatedException
*/
@PreUpdate
@PrePersist
public void sanityCheck() throws FacadeException {
if( number != null ) {
number = number.trim();
}
if( number != null && number.startsWith("* ") ) {
number = number.substring(2);
}
if( number == null || number.length() == 0 ) {
throw new BusinessException("number must be set");
}
if( getAdditionalContent() != null && getAdditionalContent().length() > 255) {
setAdditionalContent(getAdditionalContent().substring(0,255));
}
}
示例5: sanityCheck
import javax.persistence.PreUpdate; //导入依赖的package包/类
/**
* Checks, if some constraints are kept during the previous operations.
*
* @throws FacadeException
*/
@PreUpdate
@PrePersist
public void sanityCheck() throws FacadeException {
if( number != null ) {
number = number.trim();
}
if( number != null && number.length()==0 ) {
number = null;
}
if( itemData != null && !itemData.getClient().equals(getClient())) {
setClient(itemData.getClient());
}
}
示例6: prePersist
import javax.persistence.PreUpdate; //导入依赖的package包/类
@PrePersist
@PreUpdate
public void prePersist() {
if (encodedValue == null && unencodedValue != null) {
try {
encodedValue = CibetUtil.encode(unencodedValue);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
if (parameterId == null) {
parameterId = UUID.randomUUID().toString();
log.debug("PREPERSIST: " + parameterId);
}
}
示例7: beforeUpdate
import javax.persistence.PreUpdate; //导入依赖的package包/类
@PreUpdate
public void beforeUpdate(Object entity) {
if (entity instanceof AbstractAuditableEntity) {
AbstractAuditableEntity o = (AbstractAuditableEntity) entity;
o.setLastModifiedDate(LocalDateTime.now());
if (o.getLastModifiedBy()== null) {
o.setLastModifiedBy(currentUser());
}
}
}
示例8: assertEncrypted
import javax.persistence.PreUpdate; //导入依赖的package包/类
/**
* Makes sure only {@link User}s with encrypted {@link Password} can be persisted.
*/
@PrePersist
@PreUpdate
void assertEncrypted() {
if (!password.isEncrypted()) {
throw new IllegalStateException("Tried to persist/load a user with a non-encrypted password!");
}
}
示例9: prePersist
import javax.persistence.PreUpdate; //导入依赖的package包/类
@PrePersist
@PreUpdate
public void prePersist(XmEntity obj) {
String avatarUrl = obj.getAvatarUrl();
if (StringUtils.isNoneBlank(avatarUrl)) {
if (avatarUrl.matches(PATTERN_FULL)) {
obj.setAvatarUrl(FilenameUtils.getName(avatarUrl));
} else {
obj.setAvatarUrl(null);
}
}
}
示例10: processDefaultJpaCallbacks
import javax.persistence.PreUpdate; //导入依赖的package包/类
private void processDefaultJpaCallbacks(String instanceCallbackClassName, List<JpaCallbackClass> jpaCallbackClassList) {
ClassInfo callbackClassInfo = getLocalBindingContext().getClassInfo( instanceCallbackClassName );
// Process superclass first if available and not excluded
if ( JandexHelper.getSingleAnnotation( callbackClassInfo, JPADotNames.EXCLUDE_SUPERCLASS_LISTENERS ) != null ) {
DotName superName = callbackClassInfo.superName();
if ( superName != null ) {
processDefaultJpaCallbacks( instanceCallbackClassName, jpaCallbackClassList );
}
}
String callbackClassName = callbackClassInfo.name().toString();
Map<Class<?>, String> callbacksByType = new HashMap<Class<?>, String>();
createDefaultCallback(
PrePersist.class, PseudoJpaDotNames.DEFAULT_PRE_PERSIST, callbackClassName, callbacksByType
);
createDefaultCallback(
PreRemove.class, PseudoJpaDotNames.DEFAULT_PRE_REMOVE, callbackClassName, callbacksByType
);
createDefaultCallback(
PreUpdate.class, PseudoJpaDotNames.DEFAULT_PRE_UPDATE, callbackClassName, callbacksByType
);
createDefaultCallback(
PostLoad.class, PseudoJpaDotNames.DEFAULT_POST_LOAD, callbackClassName, callbacksByType
);
createDefaultCallback(
PostPersist.class, PseudoJpaDotNames.DEFAULT_POST_PERSIST, callbackClassName, callbacksByType
);
createDefaultCallback(
PostRemove.class, PseudoJpaDotNames.DEFAULT_POST_REMOVE, callbackClassName, callbacksByType
);
createDefaultCallback(
PostUpdate.class, PseudoJpaDotNames.DEFAULT_POST_UPDATE, callbackClassName, callbacksByType
);
if ( !callbacksByType.isEmpty() ) {
jpaCallbackClassList.add( new JpaCallbackClassImpl( instanceCallbackClassName, callbacksByType, true ) );
}
}
示例11: processJpaCallbacks
import javax.persistence.PreUpdate; //导入依赖的package包/类
private void processJpaCallbacks(String instanceCallbackClassName, boolean isListener, List<JpaCallbackClass> callbackClassList) {
ClassInfo callbackClassInfo = getLocalBindingContext().getClassInfo( instanceCallbackClassName );
// Process superclass first if available and not excluded
if ( JandexHelper.getSingleAnnotation( callbackClassInfo, JPADotNames.EXCLUDE_SUPERCLASS_LISTENERS ) != null ) {
DotName superName = callbackClassInfo.superName();
if ( superName != null ) {
processJpaCallbacks(
instanceCallbackClassName,
isListener,
callbackClassList
);
}
}
Map<Class<?>, String> callbacksByType = new HashMap<Class<?>, String>();
createCallback( PrePersist.class, JPADotNames.PRE_PERSIST, callbacksByType, callbackClassInfo, isListener );
createCallback( PreRemove.class, JPADotNames.PRE_REMOVE, callbacksByType, callbackClassInfo, isListener );
createCallback( PreUpdate.class, JPADotNames.PRE_UPDATE, callbacksByType, callbackClassInfo, isListener );
createCallback( PostLoad.class, JPADotNames.POST_LOAD, callbacksByType, callbackClassInfo, isListener );
createCallback( PostPersist.class, JPADotNames.POST_PERSIST, callbacksByType, callbackClassInfo, isListener );
createCallback( PostRemove.class, JPADotNames.POST_REMOVE, callbacksByType, callbackClassInfo, isListener );
createCallback( PostUpdate.class, JPADotNames.POST_UPDATE, callbacksByType, callbackClassInfo, isListener );
if ( !callbacksByType.isEmpty() ) {
callbackClassList.add( new JpaCallbackClassImpl( instanceCallbackClassName, callbacksByType, isListener ) );
}
}
示例12: updateTimeStamps
import javax.persistence.PreUpdate; //导入依赖的package包/类
/**
* Sets the update-time and creation-time to {@link Instant#now()}.
* <br>
* <i>Note:</i> The creation-time will only be set if it has not been set previously.
*/
@PreUpdate
@PrePersist
public void updateTimeStamps() {
updateTime = new Timestamp(Instant.now().toEpochMilli());
if (createTime == null) {
createTime = updateTime;
}
}
示例13: onPreUpdate
import javax.persistence.PreUpdate; //导入依赖的package包/类
@PreUpdate
void onPreUpdate(Object o) {
String txId = (String)ThreadLocalContext.get(CompositeTransactionParticipantService.CURRENT_TRANSACTION_KEY);
if (null == txId){
LOG.info("onPreUpdate outside any transaction");
} else {
LOG.info("onPreUpdate inside transaction [{}]", txId);
enlist(o, EntityCommand.Action.UPDATE, txId);
}
}
示例14: beforeUpdate
import javax.persistence.PreUpdate; //导入依赖的package包/类
@PreUpdate
public void beforeUpdate(Object entity) {
if (entity instanceof AbstractAuditableEntity) {
AbstractAuditableEntity o = (AbstractAuditableEntity) entity;
o.setLastModifiedDate(LocalDateTime.now());
if (o.getLastModifiedBy() == null) {
o.setLastModifiedBy(currentUser());
}
}
}
示例15: preUpdate
import javax.persistence.PreUpdate; //导入依赖的package包/类
@PreUpdate
void preUpdate() {
setModificationTimeToCurrentTime();
final Long activeUserId = getActiveUserId();
if (activeUserId >= 0 || getAuditFields().getModifiedByUserId() == null) {
getAuditFields().setModifiedByUserId(activeUserId);
}
}