bir varlığın devam sırasında ben varlıklar üzerinde sınırlamaların doğrulamak ve bunu 255 fazla olmayan bir süre olmak istiyorum, bu yüzden bu gibi tanımlanmış olabilir:nasıl alan adı olan bir varlık var hazırda
@Entity
public class A implements Serializable {
...
@NotNull
@Size(max=255)
private String name;
Ben a.persist() dediğimde doğrulanmasını istiyorum, böylece ad çok uzunsa bir istisna atılır.
<?xml version="1.0" encoding="UTF-8"?>
<validation-config
xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd">
<default-provider>org.hibernate.validator.HibernateValidator</default-provider>
<message-interpolator>org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator</message-interpolator>
<traversable-resolver>org.hibernate.validator.engine.resolver.DefaultTraversableResolver</traversable-resolver>
<constraint-validator-factory>org.hibernate.validator.engine.ConstraintValidatorFactoryImpl</constraint-validator-factory>
</validation-config>
Oysa çalışmıyor:
Ben HibernateValidator validation.xml'deki tanımladınız. İstisna yok, sadece esnasında taahhüt, varlık yöneticisi sifonu çekildiğinde devam sırasında atılan edilir ve bir istisna olsun ve (o çok boyutu 255 ile sütun üzerinde bir sınırlama olduğundan) o zaman bile veritabanından bir istisnadır. Bu yüzden, validasyonumun hiç işe yaramadığına inanıyorum. 1) nasıl doğrulama devam sırasında gerçekleşmesi ve yapmamaya sırasında aynı hizada 2) nasıl doğrulama başarısız olduğunda doğrulama istisnalar atmak için neden: bu iki soru ile bana yardımcı olursa
yüzden memnun olurum?
teşekkürler! Bu doğrulama olur şimdi, yarar ama, sırasında geçerli olmaz (işlemediğim kadar hangi gerçekleşmeyebilir) sırasında temizleme gerçekleşir. Persist() dediğimde bunu yapmanın bir yolu var mı? –
senin kimliği sadece zaman floş oturumu atanan ve Hazırda Nesnelerinizi devam zaman bu aslında aşamadır, çünkü bu normal bir davranış olduğunu düşünüyorum. –
Thats öyle. "Persist()" de hayır, validasyonu() geçmez. Yalnızca işleminizi gerçekleştirirseniz() veya işleminizi gerçekleştirirseniz, fasulyelerinizi doğrular. Bu yüzden önce bir ısrar() ve sonra bir flush() – flipperweid