Doppelte annotation Fehler - aber wo?
Kurz, erste - bekomme ich diese Exception message:
serverError: class javax.faces.el.EvaluationException Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128)
Mein code besteht aus 1 Entity-Klasse für eine Tabelle einer EJB, eine 'business class' und eine JSF-Seite; die Ausnahme passiert, wenn ich rufe EntityManager.merge(). Es gibt nur 1 Beschriftung mit 'max = 128' in:
@Size(max = 128)
@Column(name = "name")
private String name;
Der einzige Ort mit duplizierten Anmerkungen ist:
@Entity
@Table(name = "attributes", schema = "office_db")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Attributes.findAll", query = "SELECT a FROM Attributes a"),
@NamedQuery(name = "Attributes.findById", query = "SELECT a FROM Attributes a WHERE a.id = :id"),
@NamedQuery(name = "Attributes.findByName", query = "SELECT a FROM Attributes a WHERE a.name = :name"),
@NamedQuery(name = "Attributes.findByType", query = "SELECT a FROM Attributes a where a.type.id = :type")
})
aber ich denke, dass sollte echt sein, wie es erzeugt wurde, Netbeans 8.2 aus der Datenbank-Tabelle.
Nun noch einige weitere details. Zuerst die Tabelle:
mysql> show create table attributes\G
*************************** 1. row ***************************
Table: attributes
Create Table: CREATE TABLE `attributes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent` int(11) DEFAULT NULL,
`type` int(11) DEFAULT NULL,
`name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `parent_ix` (`parent`),
KEY `type_ix` (`type`),
CONSTRAINT `attributes_parent_fk` FOREIGN KEY (`parent`) REFERENCES `attributes` (`id`),
CONSTRAINT `attributes_type_fk` FOREIGN KEY (`type`) REFERENCES `attributes` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1301 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
1 row in set (0.03 sec)
Neben der Entity-Klasse:
import (...stuff...)
@Entity
@Table(name = "attributes")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Attributes.findAll", query = "SELECT a FROM Attributes a"),
@NamedQuery(name = "Attributes.findById", query = "SELECT a FROM Attributes a WHERE a.id = :id"),
@NamedQuery(name = "Attributes.findByName", query = "SELECT a FROM Attributes a WHERE a.name = :name"),
@NamedQuery(name = "Attributes.findByType", query = "SELECT a FROM Attributes a where a.type.id = :type")
})
public class Attributes implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Size(max = 128)
@Column(name = "name")
private String name;
@OneToMany(mappedBy = "parent")
private Collection<Attributes> attributesCollection;
@JoinColumn(name = "parent", referencedColumnName = "id")
@ManyToOne
private Attributes parent;
@OneToMany(mappedBy = "type")
private Collection<Attributes> attributesCollection1;
@JoinColumn(name = "type", referencedColumnName = "id")
@ManyToOne
private Attributes type;
private static final Logger logger=
Logger.getLogger(Attributes.class.getName());
public Attributes() {
}
public Attributes(Integer id) {
this.id = id;
}
public Attributes(Integer id, Integer parent, Integer type, String name) {
logger.info("OFFICE Attributes constructor 3 id: "+id+", parent: "+parent+", type: "+type+", name: "+name);
this.parent=new Attributes();
this.type=new Attributes();
this.id = id;
this.parent.setId(parent);
this.type.setId(type);
this.name = name;
}
public Attributes(Integer parent, Integer type, String name) {
logger.info("OFFICE Attributes constructor 4 parent: "+parent+", type: "+type+", name: "+name);
this.parent=new Attributes();
this.type=new Attributes();
this.parent.setId(parent);
this.type.setId(type);
this.name = name;
logger.info("OFFICE Attributes constructor 4a");
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlTransient
public Collection<Attributes> getAttributesCollection() {
return attributesCollection;
}
public void setAttributesCollection(Collection<Attributes> attributesCollection) {
this.attributesCollection = attributesCollection;
}
public Attributes getParent() {
return parent;
}
public void setParent(Attributes parent) {
this.parent = parent;
}
@XmlTransient
public Collection<Attributes> getAttributesCollection1() {
return attributesCollection1;
}
public void setAttributesCollection1(Collection<Attributes> attributesCollection1) {
this.attributesCollection1 = attributesCollection1;
}
public Attributes getType() {
return type;
}
public void setType(Attributes type) {
this.type = type;
}
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
//TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Attributes)) {
return false;
}
Attributes other = (Attributes) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "docdb.Attributes[ id=" + id + " ]";
}
}
EJB-oder session-Klasse:
import (...stuff...)
@Stateless
public class AttributesSession {
@PersistenceContext(unitName ="officePU")
private EntityManager em;
private static final Logger logger=
Logger.getLogger(AttributesSession.class.getName());
public List<Attributes>findAttributes(){
TypedQuery<Attributes> query=
em.createNamedQuery("Attributes.findAll",Attributes.class);
return query.getResultList();
}
public Attributes findAttributeById(Long id){
TypedQuery<Attributes> query=
em.createNamedQuery("Attributes.findById", Attributes.class);
query.setParameter("id", id);
return query.getSingleResult();
}
public Integer findChildCount(Long id){
TypedQuery<Integer> query=em.createNamedQuery("findChildCount",Integer.class);
query.setParameter("id", id);
return query.getSingleResult();
}
public String createAttributes(Attributes attr){
String msg="";
try{
em.merge(attr);
em.flush();
}
catch (PersistenceException e){
msg=e.getMessage();
}
return msg;
}
public String deleteAttributes(Attributes attr){
String msg = "";
try{
em.remove(em.merge(attr));
em.flush();
}
catch (PersistenceException e){
msg=e.getMessage();
}
return msg;
}
}
Den Geschäfts-oder controller-Klasse:
import (...stuff...)
@Named(value = "attributesController")
@SessionScoped
public class AttributesController implements Serializable{
@EJB private AttributesSession sess;
private Attributes attr;
private List<Attributes> attrList;
private Integer id;
private Integer parent;
private Integer type;
private String name;
private String errmsg;
private static final Logger logger=
Logger.getLogger(AttributesController.class.getName());
public AttributesController() {
this.attrList = new ArrayList<>();
this.attr = new Attributes();
}
public List<Attributes> getAttrList() {
return attrList;
}
public List<Attributes> getAttrValueList() {
return attrList;
}
...getters and setters...
public void clearForm(){
this.id=null;
this.name=null;
this.parent=null;
this.type=null;
this.errmsg=null;
}
public String createAttributes(){
if (this.id!=null){
attr=new Attributes(this.id,this.parent,this.type,this.name);
}
else{
attr=new Attributes(this.parent,this.type,this.name);
}
errmsg=sess.createAttributes(attr);
attrList=sess.findAttributes();
return "editattributes.xhtml";
}
public String deleteAttributes(){
if (this.id!=null){
attr=new Attributes(this.id,this.parent,this.type,this.name);
errmsg=sess.deleteAttributes(attr);
}
attrList=sess.findAttributes();
return "editattributes.xhtml";
}
public String listAttributes(){
attrList=sess.findAttributes();
return "editattributes.xhtml";
}
@PostConstruct
public void updateList(){
attrList=sess.findAttributes();
}
@Override
public String toString(){
return "Name: "+((name==null)?"":name)
+", parent: "+((parent==null)?"":parent)
+", type:"+((type==null)?"":type);
}
}
Schließlich, den stack trace:
[2017-10-31T10:23:31.697+0000] [glassfish 5.0] [WARNING] [] [javax.enterprise.resource.webcontainer.jsf.lifecycle] [tid: _ThreadID=27 _ThreadName=http-listener-1(1)] [timeMillis: 1509445411697] [levelValue: 900] [[
#{attributesController.createAttributes()}: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128)
javax.faces.FacesException: #{attributesController.createAttributes()}: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128)
...(deleted stuff)
... 35 more
Caused by: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128)
... (stuff deleted)
at docdb.__EJB31_Generated__AttributesSession__Intf____Bean__.createAttributes(Unknown Source)
at docdb.AttributesController.createAttributes(AttributesController.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at javax.el.ELUtil.invokeMethod(ELUtil.java:304)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:535)
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256)
at com.sun.el.parser.AstValue.invoke(AstValue.java:285)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 36 more
]]
[2017-10-31T10:23:31.700+0000] [glassfish 5.0] [INFO] [] [docdb.LifeCycleListener] [tid: _ThreadID=27 _ThreadName=http-listener-1(1)] [timeMillis: 1509445411700] [levelValue: 800] [[
OFFICE END PHASE INVOKE_APPLICATION 5]]
[2017-10-31T10:23:31.701+0000] [glassfish 5.0] [INFO] [] [docdb.LifeCycleListener] [tid: _ThreadID=27 _ThreadName=http-listener-1(1)] [timeMillis: 1509445411701] [levelValue: 800] [[
OFFICE]]
[2017-10-31T10:23:31.703+0000] [glassfish 5.0] [SEVERE] [] [javax.enterprise.resource.webcontainer.jsf.context] [tid: _ThreadID=27 _ThreadName=http-listener-1(1)] [timeMillis: 1509445411703] [levelValue: 1000] [[
javax.faces.el.EvaluationException: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:330)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:870)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1418)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:201)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:670)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1580)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:258)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:652)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:591)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:371)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:238)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:463)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:168)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:242)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:539)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128)
at sun.reflect.annotation.TypeAnnotationParser.mapTypeAnnotations(TypeAnnotationParser.java:361)
at sun.reflect.annotation.AnnotatedTypeFactory$AnnotatedTypeBaseImpl.<init>(AnnotatedTypeFactory.java:139)
at sun.reflect.annotation.AnnotatedTypeFactory.buildAnnotatedType(AnnotatedTypeFactory.java:65)
at sun.reflect.annotation.TypeAnnotationParser.buildAnnotatedType(TypeAnnotationParser.java:79)
at java.lang.reflect.Field.getAnnotatedType(Field.java:1159)
at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findCascadingMetaData(AnnotationMetaDataProvider.java:610)
at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findPropertyMetaData(AnnotationMetaDataProvider.java:231)
at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getFieldMetaData(AnnotationMetaDataProvider.java:220)
at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.retrieveBeanConfiguration(AnnotationMetaDataProvider.java:128)
at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfiguration(AnnotationMetaDataProvider.java:119)
at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanConfigurationForHierarchy(BeanMetaDataManager.java:220)
at org.hibernate.validator.internal.metadata.BeanMetaDataManager.createBeanMetaData(BeanMetaDataManager.java:187)
at org.hibernate.validator.internal.metadata.BeanMetaDataManager.lambda$getBeanMetaData$0(BeanMetaDataManager.java:160)
at org.hibernate.validator.internal.metadata.BeanMetaDataManager$$Lambda$24/1020030882.apply(Unknown Source)
at java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:324)
at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanMetaData(BeanMetaDataManager.java:159)
at org.hibernate.validator.internal.engine.ValidatorImpl.getConstraintsForClass(ValidatorImpl.java:308)
at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.isBeanConstrained(BeanValidationListener.java:158)
at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.validateOnCallbackEvent(BeanValidationListener.java:108)
at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.preUpdate(BeanValidationListener.java:94)
at org.eclipse.persistence.descriptors.DescriptorEventManager.notifyListener(DescriptorEventManager.java:726)
at org.eclipse.persistence.descriptors.DescriptorEventManager.notifyEJB30Listeners(DescriptorEventManager.java:696)
at org.eclipse.persistence.descriptors.DescriptorEventManager.executeEvent(DescriptorEventManager.java:233)
at org.eclipse.persistence.descriptors.changetracking.DeferredChangeDetectionPolicy.calculateChanges(DeferredChangeDetectionPolicy.java:87)
at org.eclipse.persistence.descriptors.changetracking.AttributeChangeTrackingPolicy.calculateChangesForExistingObject(AttributeChangeTrackingPolicy.java:48)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.calculateChanges(UnitOfWorkImpl.java:711)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1566)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.issueSQLbeforeCompletion(UnitOfWorkImpl.java:3256)
at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.issueSQLbeforeCompletion(RepeatableWriteUnitOfWork.java:355)
at org.eclipse.persistence.transaction.AbstractSynchronizationListener.beforeCompletion(AbstractSynchronizationListener.java:158)
at org.eclipse.persistence.transaction.JTASynchronizationListener.beforeCompletion(JTASynchronizationListener.java:68)
at com.sun.enterprise.transaction.JavaEETransactionImpl.commit(JavaEETransactionImpl.java:452)
at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.commit(JavaEETransactionManagerSimplified.java:854)
at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:723)
at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:507)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4600)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2108)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2078)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
at com.sun.proxy.$Proxy175.createAttributes(Unknown Source)
at docdb.__EJB31_Generated__AttributesSession__Intf____Bean__.createAttributes(Unknown Source)
at docdb.AttributesController.createAttributes(AttributesController.java:118)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at javax.el.ELUtil.invokeMethod(ELUtil.java:304)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:535)
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256)
at com.sun.el.parser.AstValue.invoke(AstValue.java:285)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 36 more
]]
- warum nicht post die eigentliche exception + StackTrace und dann können die Leute sehen, wo es herkommt, anstatt Sie zu erraten
- nun, zwei Gründe, nicht wirklich. Man, ich wollte nicht den dump in eine Wand ein code hier, wenn es kein Interesse, und zwei, ich mag es nicht, wenn Menschen nur werfen Ihre Codes und Sie bitten, es zu beheben; ich wollte nicht, das zu tun. Ich will wirklich verstehen, was geschieht auf einer tieferen Ebene, und das problem, zwar wichtig, ist nicht die einzige wichtige Sache für mich. Ich werde mehr details in einer Antwort - danke für die Nachfrage.
- Tatsächlich, ich habe erkannt, dass das hinzufügen von mehr Details in einer Antwort ist nicht der richtige Weg, so will ich hinzufügen, ein edit statt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich wäre unglaublich überrascht, wenn die
@NamedQueries
ist ein Problem, der name deutet darauf hin, dass es sollte eine Liste/array von@NamedQuery
Elemente.Versuchen:
Sehen, wie Sie sind Vertrauensperson, die Sie eigentlich nicht haben
@size
wiederholt, vielleicht sollten wir bei überschneidung der Funktion, die@Column
annotation enthält die gleiche Funktionalität, vielleicht könnte dies einen Konflikt verursacht.Bekomme ich die gleiche Problem, aber mein problem war comming von pom.xml Datei. Ich hatte es zwei PPV Abhängigkeiten
Ich gelöscht, der erste und das ist mein problem gelöst. Sorry für mein Englisch-Niveau
Die Antworten hier schon diskutieren die möglichen Lösungen, um dieses problem zu lösen, so werde ich den Fokus auf meine Erkenntnisse über die Ursache des Problems.
Habe ich das Problem nach dem generieren von Entitäten mit Netbeans 8.2 mit der Create Persistence Unit-Feld angekreuzt. Dieses Verfahren bewirkt, dass zwei Abhängigkeiten zu Ihrem Projekt Hinzugefügt, in der
pom.xml
nämlich org.eclipse.die Persistenz.jpa.modelgen.Prozessor und eclipselink.Diese EclipseLink Abhängigkeiten Hinzugefügt, um mein Projekt hatte eine bug-Problem, das gemeldet wurde :
Als Ergebnis einer dieser Fehler, Sie deshalb nicht in der Lage, die Verwendung von @Column annotation, die entweder mit @NotNull oder @Size.
In der
pom.xml
Datei löschen:dieser Fehler vorhanden ist, auf IDE-Niveau. Zum Beispiel auf dem Feld
userName
annoted als:werfen den doppelten Fehler, ausgelöst durch
@Size
undlength = 255
und die meisten wahrscheinlich, wenn die Größe Gültigkeituser_id
ist nicht in der Datenbank festgelegt; und@NotNull
undnullable = false
auch die meisten wahrscheinlich, wenn dernot nullable
Einschränkung noch nicht in der DB. Beachten Sie, dass standardmäßig NetBeans überprüft Ihren String-Felder Länge 255 auf Entity autogeneration, wenn die Gültigkeit nicht stammen von der DB. Korrigieren Sie den Fehler geworfen:ODER
In meinem Fall, würde ich die nächste Abhängigkeiten:
Habe ich entfernt:
und jetzt ist es funktioniert ok.
Ich hatte den gleichen Fehler, und ich es lösen entfernen Sie die @NotNull annotation aus der Konzern auszuführen.