select name from mytable where id=? 这个name是数据库中的字段还是Jbuilder中创建BMP时映射过来的字段的名字? 回答:CMP,使用的是影射过来的字段的名字包括表的名字。BMP没用过,不过 我认为是影射过来的。不过,你不用担心,你把他们都对应的设置成为一样的字段,不就行了? 另外,你可以尝试一下两中不同的途径的。 还有在写ejbfindByPrimarykey函数的时候,在bean的文件里面返回的是主键的类型,比如String,所以我return的时候是写的 return id; 在Home接口中返回的是一个对象,那么在用这个ejbfindByPrimarykey的方法的时候到底返回的是什么类型呢? 回答:返回的是一个对象。实现的BEAN和HOME功能不同。BEAN是负责实现具体的细节,HOME提供的是接口,并且是能定位对象的接口。那么如果不是对象,他如何定位?在实体BEAN中,是靠主键来定位BEAN的,返回个主键就能定位Bean了。那么实现方法返回主键也就不奇怪了。 不过,你给的分太少了。便宜你小子了
:)
BMP时, select name from mytable where id=? 就是普通的sql语句,因此name只能是数据库中的字段名。如果是CMP中的EJB QL语句, 那么写法应该是: select object(a) from mytable as a where a.id=?1 其中: mytable是你的抽象schma名字(通常用ejb名) id,name等指的是BMP映射的java对象字段名(不是数据库名) Home接口中返回的必须是ejb object类型。
2:home接口中返回的是remote接口或local接口,在调用find方法时通过查询返回主键,EJB容器会通过主键调用ejbload(),填充数据行,通过remote或local接口的getxx()来得到想要的数据。
我认为是影射过来的。不过,你不用担心,你把他们都对应的设置成为一样的字段,不就行了?
另外,你可以尝试一下两中不同的途径的。
还有在写ejbfindByPrimarykey函数的时候,在bean的文件里面返回的是主键的类型,比如String,所以我return的时候是写的 return id;
在Home接口中返回的是一个对象,那么在用这个ejbfindByPrimarykey的方法的时候到底返回的是什么类型呢?
回答:返回的是一个对象。实现的BEAN和HOME功能不同。BEAN是负责实现具体的细节,HOME提供的是接口,并且是能定位对象的接口。那么如果不是对象,他如何定位?在实体BEAN中,是靠主键来定位BEAN的,返回个主键就能定位Bean了。那么实现方法返回主键也就不奇怪了。
不过,你给的分太少了。便宜你小子了
:)
select name from mytable where id=?
就是普通的sql语句,因此name只能是数据库中的字段名。如果是CMP中的EJB QL语句,
那么写法应该是:
select object(a) from mytable as a where a.id=?1
其中:
mytable是你的抽象schma名字(通常用ejb名)
id,name等指的是BMP映射的java对象字段名(不是数据库名)
Home接口中返回的必须是ejb object类型。
^_^!